我当前正在创建一个SSIS包,从一个表中选择前2000个条目并将这些条目插入另一个表中。如何更新原始表中的条目(我的选择包含一个条件,我检查状态仍为空的位置)所以在我下次运行SSIS包时,它们将不会被导入?
**编辑 由于安全原因我不能给出DLL,为了描绘我的场景,我有TableA和TableB共享相同的结构:
在我的数据流任务中使用OLE DB源,以下查询用于确定应从TableA导入到TableB(OLE DB目标)的情况:
SELECT TOP(2000) *
FROM TableA
WHERE Status = ''
AND [Type] = 'New Case'
ORDER BY IndexNumber ASC
现在这些案例从TableA导入到TableB,我想更新表A中的案例,不再重新导入它们。 TableB中的数据经常被移动到另一个数据库,因此我不能将其用于比较。
答案 0 :(得分:1)
我将如何做到这一点:
我会在控制流的末尾添加一个Execute SQL Task
,将原始表中的这些前2000条记录更新为其他状态(status = 3或其他)。这样,由于您已经在查询中进行了空检查,因此它不会在您下次运行时选择那些初始2000记录。
答案 1 :(得分:1)
我建议你使用这种模式:
接下来,选择源表中准备提取的所有记录
最后,如果摘录成功,请将1(准备提取)更新为2(提取确定)