【发布时间】:2011-01-09 12:44:16
【问题描述】:
有没有办法永久更改身份列的身份种子?使用 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
会存在。
是否需要创建新列、移动值、删除原始列并重命名新列?
【问题讨论】:
-
运行 Profiler,我看到 MS 创建了一个临时表,复制数据,然后删除现有表并重命名临时表。可能是因为身份列不能超过一个。
标签: sql-server seed identity-column