我正在使用此代码重置表上的标识:
DBCC CHECKIDENT('TableName', RESEED, 0)
Run Code Online (Sandbox Code Playgroud)
这在大多数情况下工作正常,第一个插入我将1插入Id列.但是,如果我删除数据库并重新创建它(使用我编写的脚本)然后调用DBCC CHECKIDENT,则插入的第一个项目的ID将为0.
有任何想法吗?
编辑:经过研究我发现我没有正确阅读文档:http: //msdn.microsoft.com/en-us/library/aa258817(SQL.80).aspx - "当前标识值设置为new_reseed_value.如果自创建以来没有向表插入任何行,则在执行DBCC CHECKIDENT后插入的第一行将使用new_reseed_value作为标识.否则,插入的下一行将使用new_reseed_value + 1.
我最近从PostgreSQL数据库迁移到SQL Server数据库.要切换数据我必须启用IDENTITY_INSERT.好吧,在任何表中执行插入操作时,我会发现由于重复的标识值(设置为主键)而导致各种奇怪的错误.
我有很多桌子.什么是最简单的方法来自动重新播种每个表的身份,以便它在之后max(RID)?