sql-server - 如何避免在重新运行加载数据的 SSIS 包时将数据(重复)重新插入 SQL Server 表?
问题描述
我创建的包是SSIS。第一次插入效果很好。当我通过 SQL Server 代理作业运行包时,当计划作业插入数据时,我会插入重复项。
我不知道如何停止插入多个重复记录。
我希望在通过 SQL Server 作业运行部署的包时删除重复插入
解决方案
有两种方法可以做到这一点:
(1) 使用 SQL 命令
如果源和目标位于同一服务器上,则可以使用此选项
由于您使用的是 ADO.NET 源,因此您可以将数据访问模式更改为SQL 命令并仅选择目标中不存在的数据:
SELECT *
FROM SourceTable
WHERE NOT EXISTS(
SELECT 1
FROM DestinationTable
WHERE SourceTable.ID = DestinationColumn.ID)
(2) 使用查找变换
您可以使用查找转换来获取源和目标之间的不匹配行并忽略重复项:
推荐阅读
- javascript - 带有套接字 io 应用程序的节点 js
- c++ - 在 VTK 中,在两个 vtkUnstructuredGrid 或两个 vtkPointData 之间进行处理的最简单方法是什么?
- javascript - 如何设置不可更改的页面大小
- c++ - 哈希文件递归并保存到向量 Cryptopp
- r - mtcars 数据集中的 cor 值相等?
- javascript - GraphQL:Rootquery 返回 null
- flutter - 颤振列小部件:不同高度的孩子
- php - 将元素添加到 foreach 循环内的数组
- php - php - 实时部署时出现 Laravel 404 错误
- html - 视口缩小时出现水平滚动条