我运行的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进行请求。
答案 0 :(得分:0)
发生此错误时,请使用DBCC CHECKIDENT('log_db',NORESEED)查看是否插入了高于当前标识值的值。
结果会有所不同,因此您应该忽略标准消息并查看数字。如果第一个数字小于第二个数字,则以这种方式插入记录,并且您的身份值与数据值不同步。