一次插入100,000行。错误标识列违规

时间:2010-03-06 21:07:08

标签: sql sql-server sql-server-2000

我正在尝试在一个大约100k记录的表中逐行插入..我在140左右后得到此错误..

  

违反PRIMARY KEY约束   'PK_table1'。无法插入重复   键入对象'table1'。该声明   已被终止。

在这种情况下,主键是IDENTITY列。我的INSERT语句中没有包含该列。

我跑了DBCC CHECKIDENT (table1,noreseed)

当前标识值和当前列值不相同。

如果我在5分钟内运行相同的命令,它们会变得相同。

我无法弄清问题是什么。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果目标表不为空,那么您希望将标识列重新设置为下一个最高现有值,如下所示:

Declare @Max bigint
Set @Max = ( Select Max(IdCol) From TableA ) + 1
DBCC CHECKIDENT( TableA, RESEED, @Max )

答案 1 :(得分:0)

您可以使用bcp命令执行此项工作。您可以指定要检查的身份。