SSIS Foreach通过表,插入另一个表并删除源行
发布时间:2020-05-24 17:28:53 所属栏目:MsSql 来源:互联网
导读:我有一个SSIS例程,它从一个非常动态的表中读取,并在截断原始源表之前,将它找到的任何行插入到不同数据库中的表中. 由于源表的动态特性,这种截断不会令人惊讶地导致行无法进入第二个数据库. 仅删除已迁移的行的最佳方法是什么? 源表上有一个标识列,但不会迁移
|
我有一个SSIS例程,它从一个非常动态的表中读取,并在截断原始源表之前,将它找到的任何行插入到不同数据库中的表中. 由于源表的动态特性,这种截断不会令人惊讶地导致行无法进入第二个数据库. 仅删除已迁移的行的最佳方法是什么? 源表上有一个标识列,但不会迁移它. 我无法更改任何表架构. 解决方法一个可能听起来很愚蠢但可行的选项是首先删除并使用 OUTPUT子句.我创建了一个简单的控制流,为我填充一个表. IF EXISTS
(
SELECT 1 FROM sys.tables AS T WHERE T.name = 'DeleteFirst'
)
BEGIN
DROP TABLE dbo.DeleteFirst;
END
CREATE TABLE dbo.DeleteFirst
(
[name] sysname
);
INSERT INTO
dbo.DeleteFirst
SELECT
V.name
FROM
master.dbo.spt_values V
WHERE
V.name IS NOT NULL;
在我的OLE DB源中,不是使用SELECT,而是删除要沿管道传输的数据并输出DELETED虚拟表. Somethinng喜欢 DELETE
DF
OUTPUT
DELETED.*
FROM
dbo.DeleteFirst AS DF;
它有效,它的工作原理! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
