gpt4 book ai didi

c# - 在 SQL Server 中跳过完全相同的记录

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:42 26 4
gpt4 key购买 nike

我有一组文本文件,要通过 C# 中的 SqBulkCopy 导入到 SQL Server 中。有些记录出现在多个记录中,我想跳过这些记录而不是抛出错误并停止。

对于有明确“uniqueID”/主键的情况,一切都很好——我使用了“WITH (IGNORE_DUP_KEY = ON)”,效果很好。

但在这种情况下,无法确定此类 uniqueID,除非将所有字段连接在一起,或者创建一个涉及所有字段的复合键。我试图获得一个唯一的 transactionID 或类似的但没有一个可用。有时记录相同,但字段中的一个数字已更改;在这种情况下,我希望它插入到表中。

我认为可能有比针对所有字段创建 key 更好的方法?如果我这样做了,那就意味着日期、字符串、值等都必须混合在一起才能形成 key 。

查询行并对值进行哈希处理以与输入行的哈希值进行比较是另一种想法,但我敢肯定性能会很糟糕:)

有人对如何最好地做到这一点有建议吗?

谢谢

最佳答案

如果您正在导入,您可以创建一个阶段,通过插入一个与目标表具有相同架构的临时表来删除重复数据,然后执行 SELECT DISTINCT对其进行查询,将此查询的结果插入到最终目标表中。除非您谈论的是数千万行,否则这应该可以正常工作,因为它只需要运行一次。

关于c# - 在 SQL Server 中跳过完全相同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com