当我在命令行上指定 /ConfigFile something.dtsConfig 时,2008 年包配置与 2005 年相比发生了变化,包中定义的变量将保留其设计时值,而不是使用配置文件中的设置。
我不太确定我完全理解如何获取要使用的外部配置文件。我读过一些文章,说只有设置的设计时配置才会覆盖外部文件的负载。这是否意味着我可以将变量更改为空字符串,然后它们会被覆盖?我不能完全删除变量!整数呢?
我看过一些文章提到使用包中的包配置关闭。
我可以使用 SSIS 包编辑器或 XML 编辑器来更改包中的配置文件路径,然后它将“最后”使用该文件的设置(无论外部 /ConfigFile 选项如何),但我不想成为改变包。我想要一个带有 Test.dtsConfig 和 Production.dtsConfig 的包,并且能够在不更改包的情况下来回交换。
现在推荐的方法是什么?
我想我在某种程度上接近让它工作,但由于某种原因我仍然会出错。
我有以下更新查询:
UPDATE DeviceAttribute
SET Details = CASE Name
WHEN 'Accessories' THEN @Accessories
WHEN 'Description' THEN @Description
WHEN 'Specification' THEN @Specification
ELSE Details
END
WHERE DeviceID = 10
Run Code Online (Sandbox Code Playgroud)
参数由不同的用户填写。我现在面临的问题是,即使您想更新单个字段,您仍然必须使用旧数据填写其他参数。因此,我想设置选项 IF @parameter IS NULL THEN THEN 保留已存储在数据库中的值。我试图找到一些解决方案,类似以下查询的内容似乎是解决方案,但我无法让它工作:
UPDATE DeviceAttribute
SET Details = CASE Name
WHEN 'Accessories' IS NOT NULL THEN @Accessories
WHEN 'Description' IS NOT NULL THEN @Description
WHEN 'Specification' IS NOT NULL THEN @Specification
ELSE Details
END
WHERE DeviceID = 10
Run Code Online (Sandbox Code Playgroud)
数据库存储在 SQL Server 2008 中
在此先感谢您的帮助。
编辑以澄清:
原来的表是这样的
DeviceID|Name …Run Code Online (Sandbox Code Playgroud) 我希望能够轻松检查查询中提供的表中不存在哪些唯一标识符。
为了更好地解释,这是我现在要做的,以检查表中不存在列表“1、2、3、4”的哪些 ID:
SELECT * FROM dbo."TABLE" WHERE "ID" IN ('1','2','3','4'),假设该表不包含 ID 为 2 的行。#N/A都在表中没有出现的值上。我认为必须有更好的方法来做到这一点。理想情况下,我正在寻找类似的东西
要检查的列表 -> 查询要检查的表 -> 不在表中的列表成员
Excel 中有一个列应该是文本,但 SSIS 在那里看到数字文本并自动使其成为双精度浮点 [DT_R8]。
我可以在输出分支的外部和输出列中手动更改它,但错误输出只是拒绝让我更改相应的列。
Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)".
Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on "output column "Group No" (29)".
Run Code Online (Sandbox Code Playgroud)
我曾尝试修改包 xml。我试过了IMEX=1,typeguessrow=0但没有一个能解决我的问题。这有什么解决办法吗?还有一些文章建议您修改注册表,以便 excel 在猜测数据类型之前读取超过默认的 8 行。我不想走这条路,因为即使它可以工作,我也必须修改我计划运行包的机器上的注册表。
要导入SQL nvarchar字段的excel字段读取例如
295.3
296.33
Run Code Online (Sandbox Code Playgroud)
但它们被写入 SQL 表
295.30000000000001
296.32999999999998
Run Code Online (Sandbox Code Playgroud)
我放入数据查看器,字段显示
295.3
296.33
Run Code Online (Sandbox Code Playgroud)
一直到执行这是正确的,但我猜当它遇到 OLE DB 目标源时,它会以某种方式将它转换为
295.30000000000001
296.32999999999998 …Run Code Online (Sandbox Code Playgroud) 针对间隙和孤岛的 T-SQL 解决方案能否比在客户端上运行的 C# 解决方案运行得更快?
具体来说,让我们提供一些测试数据:
CREATE TABLE dbo.Numbers
(
n INT NOT NULL
PRIMARY KEY
) ;
GO
INSERT INTO dbo.Numbers
( n )
VALUES ( 1 ) ;
GO
DECLARE @i INT ;
SET @i = 0 ;
WHILE @i < 21
BEGIN
INSERT INTO dbo.Numbers
( n
)
SELECT n + POWER(2, @i)
FROM dbo.Numbers ;
SET @i = @i + 1 ;
END ;
GO
CREATE TABLE dbo.Tasks
(
StartedAt SMALLDATETIME NOT NULL ,
FinishedAt SMALLDATETIME …Run Code Online (Sandbox Code Playgroud) 我希望married在使用marital_status列上的文本进行插入后触发此触发器,这是我目前所拥有的
ALTER TRIGGER [dbo].[marriage]
ON [dbo].[applicant_personal_info]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF (SELECT [marital_status] FROM inserted) = 'married'
BEGIN
INSERT INTO [dbo].[applicant_marriage_info]([dom])
VALUES('abc')
END
END
Run Code Online (Sandbox Code Playgroud) 我们有一组运行在同一虚拟服务器上的 SQL Server 实例 (2008 R2)。每个实例代表我们开发周期中的一个阶段(开发/测试/阶段/等)。在任何给定的时间,所有实例都需要在线,但负载往往会被隔离到一个实例,这取决于我们在发布生命周期中的位置。
SQL Server 似乎会抓取并保存我们设置为最大值的任何内存量。我想知道是否有任何方法可以将实例配置为“智能”内存消耗,以便它们在需要时不会相互阻止获取内存。
在安装 SQL Server 2012 期间,在 Collation 选项卡中,我可以在French_CI_AS和French_100_CI_AS之间进行选择。
它们是什么意思,哪个是新的?当没有代码时,它是比 100 新还是旧?
只是想知道统计数据是否保存在数据库中而不是内存中?如果我将数据库从生产服务器备份/恢复到开发服务器,它是否会保留相同的统计信息,以便在开发服务器上执行计划不会有太大不同?
我是设置 SQL Server 和 Vms 的新手。我的前任使用了 SQL 安装所在的 C 驱动器的 Raid 5 和数据库文件和数据库日志的 RAID 10。
我想知道这是正确的还是应该将 RAID 5 用于 SQL 数据库文件?
有什么帮助吗?