我需要创建一个简单的包:
将数据插入表A
获取scope_identity()
使用表A中的id
我创建了一个,但它只进行批量插入,所以我想再次重做它。
任何帮助将不胜感激。
答案 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>
”但之前并存储结果(此处:当前标识值) )在变量中,您可以稍后使用。