我正在尝试在一个大约100k记录的表中逐行插入..我在140左右后得到此错误..
违反PRIMARY KEY约束 'PK_table1'。无法插入重复 键入对象'table1'。该声明 已被终止。
在这种情况下,主键是IDENTITY列。我的INSERT语句中没有包含该列。
我跑了DBCC CHECKIDENT (table1,noreseed)
当前标识值和当前列值不相同。
如果我在5分钟内运行相同的命令,它们会变得相同。
我无法弄清问题是什么。非常感谢任何帮助。
答案 0 :(得分:1)
如果目标表不为空,那么您希望将标识列重新设置为下一个最高现有值,如下所示:
Declare @Max bigint
Set @Max = ( Select Max(IdCol) From TableA ) + 1
DBCC CHECKIDENT( TableA, RESEED, @Max )
答案 1 :(得分:0)
您可以使用bcp命令执行此项工作。您可以指定要检查的身份。