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

Get Inserted ID from OLE DB Destination using SSIS Package

我已经使用 OLE DB Destination 向 SQL 服务器 table 插入数据。是否可以在不使用查询的情况下从 table 中获取 Inserted ID

我可以使用

来实现
INSERT INTO testBook(name) VALUES ('Test Book')
SELECT SCOPE_IDENTITY()

通过选择数据访问模式 SQL COMMAND

但是有没有什么方法可以在不使用 SQL 查询并且仅使用 SSIS 组件的情况下实现这一目标?

请指教

您可以使用 OLEDB 命令和查找来执行此操作。使用 OLEDB 命令将数据插入 table。之后使用您插入的字段进行查找。这将 return 您插入的值的插入 ID。参考以下压缩包截图。

执行SQL任务

如果我遇到这个问题,我会在 DataFlow Task 之后添加一个 Execute SQL Task,然后我将使用以下命令获取身份( 或者我可以使用一个检索它的 Identity 函数) :

SELECT MAX(ID) FROM testBook

我会将结果映射到一个变量

OLEDB 命令

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

类似问题

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

  • Insert a single row and return its primary key