使用 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
我已经使用 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