简单的SSIS帮助

时间:2011-03-29 06:44:00

标签: sql ssis dts

我需要创建一个简单的包:

  1. 将数据插入表A

  2. 获取scope_identity()

  3. 使用表A中的id

  4. 向表B插入多行

    我创建了一个,但它只进行批量插入,所以我想再次重做它。

    任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

啊,在这种情况下,我可能不会使用查找而是“执行SQL” - 任务。

您可以执行此操作“任意”SQL语句。获取最后插入的标识值可能有点棘手。如果您不关心不受您控制的并发插入,可能会使用简单的“MAX(...)”。

的内容
SELECT max(<column_name>) FROM <A>

否则会更多地涉及到它。寻找一个能够满足您需求的SQL语句(这与SSIS无关,只与SQL有关)。我假设你使用的是MSSQL,你可能会看一下“SQL SERVER – @@IDENTITY vs SCOPE_IDENTITY() vs IDENT_CURRENT – Retrieve Last Inserted Identity of Record”。

将SQL插入“执行SQL”任务后,将其返回值保存到变量中。有关如何执行此操作的提示,请参阅“How to load a new table with the value of a variable from SSIS package?”(抱歉,我现在找不到完美的示例...)。也许还有“How to use OUTPUT parameters with SSIS Execute SQL Task”或“Technet - SSIS Execute SQL Task”。

请记住:您没有“使用目标组件中的<whatever component> ”但之前并存储结果(此处:当前标识值) )在变量中,您可以稍后使用。