如何让标识列在 SQL Server 2012 上向前跳(比如 1000)

Din*_*ina 3 sql-server t-sql sql-server-2012

我正在使用 SQL Server 2012 并且我想保留我预先存在的数据但导致 ID(身份)列跳过 2000 行。

为什么会这样?我有一个场景,我可能会在备用服务器上发生事务,我需要将其复制到当前服务器。我希望 ID 匹配。因此,我不希望此服务器上的任何新事务与我的备用服务器具有相同的 ID。

希望这是有道理的!!谢谢

msk*_*ner 8

你可以通过运行类似的东西来做到这一点

declare @newid int;

select @newid = IDENT_CURRENT('YourTable') + 2000;

dbcc checkident('YourTable', reseed, @newid);
Run Code Online (Sandbox Code Playgroud)

这会将您的表标识重新设置为比当前高 2000,并且似乎应该可以解决您要执行的操作。