使用SSIS包从OLE DB目标中获取插入的ID

时间:2017-12-22 05:56:51

标签: sql sql-server ssis etl sql-server-data-tools

我使用OLE DB Destination将数据插入SQL Server表。是否可以在不使用查询的情况下从表中获取插入的ID

我可以使用

实现这一目标
INSERT INTO testBook(name) VALUES ('Test Book')
SELECT SCOPE_IDENTITY()

选择数据访问模式为SQL COMMAND

但是,如果不使用SQL查询并仅使用SSIS组件,有没有办法实现这一目标?

请建议。

2 个答案:

答案 0 :(得分:2)

执行SQL任务

如果我有这个问题,我会在Execute SQL Task之后添加DataFlow Task,我将使用以下命令获取身份(或我可以使用其中一个身份功能检索它):

SELECT MAX(ID) FROM testBook

我会将结果映射到变量

OLEDB命令

您也可以使用OLEDB Command代替OLEDB Destination。您可以按This Article获取详细解决方案。

类似问题

在搜索时,我发现在本网站上提到了这两个类似的问题,你可以参考其中一个。

答案 1 :(得分:1)

您可以使用OLEDB Command和Lookup执行此操作。使用OLEDB命令将数据插入表中。之后,使用您插入的字段进行查找。这将返回您插入的值的插入ID。请参阅包的以下屏幕截图。

enter image description here