有没有办法永久更改身份列的身份种子?使用 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');
返回
name seed_value increment_value last_value
-------------------------------------------------
idIdent 1 1 1000
我希望一些语法像
alter table dbo.__Test_SeedIdent alter column idIdent [int] identity(1000,1) NOT NULL
会存在。
是否有必要创建一个新列、移动值、删除原始列并重命名新列?
最佳答案
从网上书籍:
“要更改原始种子值并为任何现有行重新设定种子,您必须删除标识列并重新创建它并指定新种子值。当表包含数据时,标识号将添加到具有指定种子和增量值的现有行中. 无法保证行更新的顺序。”
关于sql-server - 更改 SQL Server 中的标识种子(永久!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2139735/