跳过SQL Server中完全相同的记录

| 我有一组文本文件,正在通过C#中的SqBulkCopy导入SQL Server。有些记录出现在多个记录中,我想跳过这些记录而不是抛出错误并停止。 对于有明确的\'uniqueID \'/主键的情况,一切都很好-我使用了\“ WITH(IGNORE_DUP_KEY = ON)\”效果很好。 但是,在这种情况下,无法确定这样的uniqueID,除非将所有字段都连接在一起,或者创建涉及所有字段的复合键。我已尝试获取唯一的transactionID或类似的标识,但没有可用的标识。有时记录是相同的,但是字段中的一位数字已更改;在这种情况下,我希望它插入表中。 我认为可能有比针对所有领域创建密钥更好的方法吗?如果我这样做了,那将意味着必须将日期,字符串,值等全部混合在一起以形成键。 查询行并散列值以与我的输入行的散列进行比较是另一种想法,但是性能肯定会很糟糕:) 任何人都建议如何最好地做到这一点? 谢谢     
已邀请:
        您可以使用EXCEPT:
insert into TargetTable
select fieldlist from SourceTable
except
select fieldlist from TargetTable;
    
        如果要导入,则可以通过插入与目标表具有相同架构的临时表,然后对其执行
SELECT DISTINCT
查询,并插入此查询的结果,来进行重复数据删除的阶段。到最终目标表中除非您要谈论数千万行,否则它应该可以正常运行,因为它只需要运行一次。     

要回复问题请先登录注册