首页 > 解决方案 > 如何避免在重新运行加载数据的 SSIS 包时将数据(重复)重新插入 SQL Server 表?

问题描述

我创建的包是SSIS。第一次插入效果很好。当我通过 SQL Server 代理作业运行包时,当计划作业插入数据时,我会插入重复项。

我不知道如何停止插入多个重复记录。

我希望在通过 SQL Server 作业运行部署的包时删除重复插入

在此处输入图像描述

标签: sql-serverssisduplicatesetlsql-server-data-tools

解决方案


有两种方法可以做到这一点:

(1) 使用 SQL 命令

如果源和目标位于同一服务器上,则可以使用此选项

由于您使用的是 ADO.NET 源,因此您可以将数据访问模式更改为SQL 命令并仅选择目标中不存在的数据:

SELECT *
FROM SourceTable
WHERE NOT EXISTS(
                SELECT 1
                FROM DestinationTable
                WHERE SourceTable.ID = DestinationColumn.ID)

(2) 使用查找变换

您可以使用查找转换来获取源和目标之间的不匹配行并忽略重复项:


推荐阅读