更改下一个自动编号分配而不重新创build整个表,MS SQL Server 2000

我有一个主键是一个int,自动编号自动增量的表。 您的标准主键types字段。

由于以前复制的数据库的复杂情况,现在我已经有了表中的行,值高达410000,但IDENT_CURRENT的值报告只有400060左右。 现在,我有代码试图插入logging和炸毁,因为数据库认为它应该使用数字400060,但我已经有一个logging与该ID。 KABOOM。

我已经考虑过在表devise器中手动设置下一个数字,但是当查看它生成的脚本时,它将创build一个复制表,将所有logging复制到它,删除旧表,重命名它,限制等。当我只需要一个简单的改变时,这一切都非常可怕。

有没有方法来改变这个值,不会造成太多不必要的改变?

在桌子上使用以下内容

dbcc checkident('dbo.table',种子,410000)

它将当前的身份值更改为410000,因此下一次插入将是无论是加号还是410000(如果增量为1,则为410001)。

那么像下面这样的东西只会删除违规的logging,然后将它们从临时表中重新插入?

SELECT * INTO #temptable FROM tablename WHERE ID_FLD>400059; DELETE * FROM tablename WHERE ID_FLD>400059; SELECT * INTO tablename FROM #temptable;