gpt4 book ai didi

c# - SQLBulkCopy 不复制主键

转载 作者:太空狗 更新时间:2023-10-30 00:43:33 25 4
gpt4 key购买 nike

使用 SQLBulkCopy 时处理主键冲突错误的最佳方法是什么

Violation of PRIMARY KEY constraint 'email_k__'. Cannot insert duplicate key in object  'lntmuser.email'.

(即如果该行已存在于目标表中)?

有没有一种方法可以跳过插入重复的行,或者这是否必须事先检查和处理?

这是我目前使用的代码:

  var conPro = tx_ProConStr.Text;
var conArc = tx_ArcConStr.Text;

var con = new SqlConnection {ConnectionString = conPro};
var cmd = new SqlCommand("SELECT * FROM dbo.email", con);
con.Open();

var rdr = cmd.ExecuteReader();
var sbc = new SqlBulkCopy(conArc) {DestinationTableName = "dbo.email"};

sbc.WriteToServer(rdr);

sbc.Close();
rdr.Close();
con.Close();

最佳答案

我通常最终会对临时表执行批量复制操作,然后使用常规 SQL 将数据从临时表复制到目标表。这使我能够执行“批量更新”,并处理像这样的特殊情况(尽管我没有遇到过这种特定需求)。

与直接批量复制相比,性能有所下降,但仍然比执行 INSERT 快很多。

关于c# - SQLBulkCopy 不复制主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692034/

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