更新用于从 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 共享相同的结构:
- 索引号(主键,索引,自增)
- 名称 (varchar)
- 姓氏 (varchar)
- 状态 (varchar)
- 类型 (varchar)
- 导入日期(日期)
在我的数据流任务中使用 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 条记录。
我建议你使用这个模式:
- 首先更新源 table 并将 1000 条记录标记为 'ready to extract',即将它们设置为 1
接下来,select 来源 table 中准备提取的所有记录
最后,如果提取成功,将1的(准备提取)更新为2的(提取OK)
我目前正在创建一个 SSIS 包,其中 select 是一个 table 中的前 2000 个条目,并将这些条目插入另一个 table。我如何更新原始 table 中的那些条目(我的 select 包含一个条件,据此我检查状态仍然为空的位置)所以在我的下一个 运行 SSIS 包中他们不会'不能导入?
**编辑 由于安全原因我无法提供 DLL,为了勾勒出我的场景,我有 TableA 和 TableB 共享相同的结构:
- 索引号(主键,索引,自增)
- 名称 (varchar)
- 姓氏 (varchar)
- 状态 (varchar)
- 类型 (varchar)
- 导入日期(日期)
在我的数据流任务中使用 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 条记录。
我建议你使用这个模式:
- 首先更新源 table 并将 1000 条记录标记为 'ready to extract',即将它们设置为 1
接下来,select 来源 table 中准备提取的所有记录
最后,如果提取成功,将1的(准备提取)更新为2的(提取OK)