每天我都会将一些 csv 数据加载到我的表中。我的表有日期列,现在我需要使用回滚函数,这样,如果数据已经存在于我的表中,它必须回滚,否则它必须根据我的 Asofdate 参数插入。
我知道这有点令人困惑,让我更清楚一点。
我的表有eid,ename,asofdate列,现在我每天插入新文件时,它必须根据asofdate查看该文件是否已经存在于该表中,如果数据存在,它应该回滚数据。
最佳答案
正如@Diego 所提到的,您将在数据流任务中使用查找转换
来实现该功能。
您的数据流任务看起来像这样。在这里,平面文件源读取 CSV 文件,然后将数据传递给查找转换。此转换将检查目标表中的现有数据(假设表名称是 dbo.Destination)。查找转换的配置显示在下一个屏幕截图中。如果没有匹配的记录,那么来自 CSV 文件的数据将被发送到 OLE DB 目标,否则数据将被丢弃。
在查找转换
中,您将在“连接”选项卡上选择目标数据库表。在“列”部分,您将验证要检查现有数据的所有列。在这种情况下,来自 CSV 文件的列 eid、name 和 asofdate 根据数据库表 dbo 中的同名列进行验证。目的地。如果这三列的传入值与表中的任何行匹配,则数据将不会继续向下发送。
希望这能给你一个想法。
关于sql - 如何防止 SSIS 从数据库中已存在的文件中导入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313612/