UPDATE Addresses
SET CountyCode = Null,
UPDATED_TIME = ?,
UPDATED_BY = ?
WHERE (Country = ? AND Town = ?)
AND CONVERT(VARCHAR(10), CREATED_TIME, 112) = '20140602'
有人可以告诉我为什么上面的代码无法从我的SSIS执行SQL任务组件执行。
我有一个countryCode
列(INT
),我想将其设置为null但不知何故SSIS不喜欢上面的代码。
我的SSIS包中有一个int变量,但它不允许空值,因此默认为0但我不想传递0值,因为0用于其他东西。
有没有办法可以使用存储过程传递空值,或者理想情况下不使用转换组件
答案 0 :(得分:0)
SSIS的内置变量不支持可为空的类型。因此,创建整数值时,默认情况下将其设置为0。
对于您的情况,我将CountryCode设置为-1(0在这里适用于Countrycode,但是将来它可能代表一个项目,更安全地使用负值进行处理)并像这样更新表。然后,在通过使用SELECT t1.id,(SELECT SUM(salary) FROM T tt where tt.id = t1.id) salary
FROM T t1
获取表并设置OLE DB Command
的语句之后,我将在Data Flow中使用OLE DB Source
,如下所示:
OLE DB Command