使用SQLBulkCopy时,处理主键冲突错误的最佳方法是什么Violation of PRIMARY KEY constraint email_k__. Cannot insert duplicate key in object lntmuser.email.(即如果该行已存在于目标表中)?有没有办法跳过...

使用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不复制主键


基础教程推荐
猜你喜欢
- unity avprovideo插件的使用详解 2023-04-14
- C# Winform 分页功能的实现 2023-06-21
- C# .NET及Mono跨平台实现原理解析 2023-02-16
- c# 使用计时器和观察者模式实现报警推送需求 2023-03-03
- C#如何Task执行任务,等待任务完成 2023-06-14
- 两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一) 2023-09-28
- C#中常用的运算符总结 2023-01-16
- c# – 对Sql Server中的索引感到困惑 2023-11-09
- C# 线程安全详解 2023-05-05
- WPF实现抽屉菜单效果的示例代码 2023-06-27