在SQL Server中更改身份种子(永久!)

ave*_*ore 12 sql-server seed identity-column

有没有办法永久更改标识列的标识种子?使用DBCC CHECKIDENT似乎只是设置了last_value.如果表被截断,则重置所有值.

dbcc checkident ('__Test_SeedIdent', reseed, 1000)

select name, seed_value, increment_value, last_value
from sys.identity_columns
where [object_id] = OBJECT_ID('__Test_SeedIdent');
Run Code Online (Sandbox Code Playgroud)

回报

name      seed_value  increment_value  last_value
-------------------------------------------------
idIdent   1           1                1000
Run Code Online (Sandbox Code Playgroud)

我希望有一些语法

alter table dbo.__Test_SeedIdent alter column idIdent [int] identity(1000,1) NOT NULL
Run Code Online (Sandbox Code Playgroud)

会存在.

是否有必要创建一个新列,移动值,删除原始列并重命名新列?

Tom*_*m H 16

来自联机丛书:

"要更改原始种子值并重新设置任何现有行,必须删除标识列并重新指定新的种子值.当表包含数据时,标识号将添加到具有指定种子和增量值的现有行中.不保证更新行的顺序."