插入而不定义违反PK约束的PK结果

时间:2016-01-01 08:03:55

标签: sql-server vb6

我运行的sql语句在每100,000个请求中大约有1个失败(很少见)。 我的问题是错误信息毫无意义。

我有一张名为ID的PK表,我做了一个

INSERT INTO log_db (col1,col2) OUTPUT inserted.ID SELECT col3,col4 FROM otherTable

未指定ID列,因此SQLServer应自动生成此列,并确保不会创建任何dublicates。

SQLServer错误消息:

  

-2147217900 [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]违反PRIMARY KEY约束' PK_log_db'。无法插入重复键   object' dbo.log_db'。重复键值为(556943)。

正在使用VB6中的ADO对SQLserver 2012进行请求。

1 个答案:

答案 0 :(得分:0)

发生此错误时,请使用DBCC CHECKIDENT('log_db',NORESEED)查看是否插入了高于当前标识值的值。

结果会有所不同,因此您应该忽略标准消息并查看数字。如果第一个数字小于第二个数字,则以这种方式插入记录,并且您的身份值与数据值不同步。