更新用于从 SSIS 导入的 Table 中的行

Updating Rows In a Table That Was Used to Import From SSIS

我目前正在创建一个 SSIS 包,其中 select 是一个 table 中的前 2000 个条目,并将这些条目插入另一个 table。我如何更新原始 table 中的那些条目(我的 select 包含一个条件,据此我检查状态仍然为空的位置)所以在我的下一个 运行 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 的案例,我想更新 TableA 中的案例以不再导入它们。 TableB 中的数据经常被移动到另一个数据库,所以我不能用它来进行比较。

我会这样做:

我会在控制流的末尾添加一个 Execute SQL Task 以将原始 table 中的前 2000 条记录更新为其他状态(状态 = 3 或其他)。这样,由于您已经在查询中进行了空检查,因此它不会 select 下一个 运行 中的那些初始 2000 条记录。

我建议你使用这个模式:

  1. 首先更新源 table 并将 1000 条记录标记为 'ready to extract',即将它们设置为 1
  2. 接下来,select 来源 table 中准备提取的所有记录

  3. 最后,如果提取成功,将1的(准备提取)更新为2的(提取OK)