我有一个简单的包,可将数据从 A 点流向 B 点 - 中间是一个行计数转换,用于填充
Int32
类型的变量。
在数据流任务之后,我有一个带有更新语句的简单执行 SQL 任务:
UPDATE [SAP].[SAPCopyInfo]
SET [endtime] = GETDATE(),
[MSEGCnt] = ?
WHERE [BegTime] = CAST(GETDATE() AS DATE)
我已将变量映射为参数,如下所示:
当我执行包时,执行 SQL 任务(名为“更新日志”)显示成功:
变量 watch 显示
intMSEGCnt
已正确填充:
但是表格没有更新 - 并且输出窗口中没有错误:
在 SSMS 中手动执行
UPDATE
SQL 工作正常(将 ? 替换为正确的值),因此它似乎不是权限问题。
我已经尝试了参数映射的“数据类型”的各种迭代,但没有任何效果。
我什至取消了
UPDATE
语句的参数化,并使用硬编码值直接在执行 SQL 任务中运行它,但它仍然不起作用。
我错过了什么?
有时你只需要另一双眼睛 - 感谢@GSerg 和@TN
答案是简单地将
UPDATE
查询更改为:
UPDATE [SAP].[SAPCopyInfo]
SET [endtime] = GETDATE(),
[MSEGCnt] = ?
WHERE CAST([BegTime] AS DATE) = CAST(GETDATE() AS DATE)