将从多个进程插入SQL数据库。进程可能有时会尝试将重复的数据插入到表中:

System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 'UK1_MyTable'. Cannot insert duplicate key in object 'dbo.MyTable'.
The statement has been terminated.

查询类似于:

INSERT INTO MyTable (FieldA, FieldB, FieldC)
SELECT FieldA='AValue', FieldB='BValue', FieldC='CValue'
WHERE (SELECT COUNT(*) FROM MyTable WHERE FieldA='AValue' AND FieldB='BValue' AND FieldC='CValue' ) = 0

用于创建表的SQL:

CREATE TABLE [dbo].[MyTable](
  [Id] [bigint] IDENTITY(1,1) NOT NULL,
  [FieldA] [bigint] NOT NULL,
  [FieldB] [int] NOT NULL,
  [FieldC] [char](3) NULL,
  [FieldD] [float] NULL,
  CONSTRAINT [PK_MyTable] PRIMARY KEY NONCLUSTERED 
  (
    [Id] ASC
  )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON),
  CONSTRAINT [UK1_MyTable] UNIQUE NONCLUSTERED 
  (
    [FieldA] ASC,
    [FieldB] ASC,
    [FieldC] ASC
  )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)
)

杀马特杀马特提问于
青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈回答于
已采纳

我相信SQL Server的默认行为是在不再需要的时候释放共享锁。子查询将导致表上的短暂共享,只要子查询完成,该锁就会被释放。

NULL值

FieldC允许NULL值的事实可能会引发一个单独的问题。

如果ANSI_NULLS是(默认),那么相等性检查FieldC=NULL将返回false,即使在FieldC为NULL的情况下

要正确处理空值,需要修改EXISTS子查询以使用IS NULL运算符

回答过的其他问题

快速添加CGI失败?

青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
一般出现这种错误,通常是由于路径不对而引起的。若是外网的图片,就是你外网的,有可能url错了,而且要使用https(因为它没有相对和绝对的路径概念)。我现在只说有路径问题。打个比方,有这么一种情况,如果文件路径被写在一个A.js文件里,而B.js文件引用了A.js,此时图片的路径...... 展开详请

自然场景文字识别技术及在地图中的应用

青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

相对于传统的测绘采集,众包数据采集具有成本低、速度快、覆盖广等优点,正逐渐成为地图数据更新的主要方式。众包采集的数据包括轨迹数据和图像数据两部分,其中图像数据的规模非常庞大(数亿),纯粹依靠人工的信息比对、处理耗时耗力,文字识别技术确实比较符合要求。顶!

区块链的去中心化理论真的有那么重要?

青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
重要啊,非常重要,不重要显卡商怎么卖显卡? 不重要持有比特币持有人怎么忽悠你入坑买比特币? 不重要电费向谁收去? 你要知道比特币没有了去中心化,那显卡会降价,降价后小学生后有钱买了,买了后小学生会玩吃鸡,小学生挖了吃鸡后会开挂,开挂后第一个杀的就是你╭( ′• o •′ )╭☞... 展开详请

如何理解语音识别中的CTC算法?

青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
目前,深度学习的算法已经大规模应用于腾讯云的语音识别产品中。腾讯云拥有业内最先进的语音识别技术,基于海量的语音数据,积累了数十万小时的标注语音数据,采用LSTM,CNN,LFMMI,CTC等多种建模技术,结合超大规模语料的语言模型,对标准普通话的识别效果超过了97%的准确率。腾讯...... 展开详请

微信小程序云开发的服务器搭建流程是什么?

青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
推荐
要完成后端服务器的配置,整体流程是这样的: 腾讯云针对上述痛点,为开发者们提供了一个微信小程序的云端脚手架,称为“微信小程序专用解决方案”,通过对云端代码的简单修改,就可以实现自己复杂的线上业务逻辑。楼主可以在腾讯云官网购买这个解决方案。 接下来我们开始利用他们的“专用服务”开...... 展开详请

如何在ASP.NET中增加最大上载文件大小?

青蛙克星哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
要增加上传文件的大小限制,有两种方法 1. IIS6或更低 默认情况下,在ASP.Net文件上传到服务器的最大大小约为4MB。可以通过修改web.config中的maxRequestLength属性来增加此值 。 请记住:maxRequestLenght以KB为单位 例如:如果...... 展开详请

关于作者

青蛙克星

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

所属标签

扫码关注云+社区