sql-server - 更改 SQL Server 中的标识种子(永久!)

标签 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');

返回
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/

相关文章:

c# - 插入行的返回值

sequelize.js - 运行挂起的播种机

python - 我如何使用 Keras 获得可重现的结果?

php - 如何在排序列中添加 +1

database - 使用(顺序)GUID 是数据库生成 ID 的唯一可行替代方案吗?

sql - SQL 选择查询中的排序结果

具有附加条件的 SQL MAX(列)

sql-server - 触发器是否能够复制作为身份 ID 的主键?

sql-server - SSRS从第二个字符串之前的字符串中提取子字符串

ruby-on-rails - cucumber 和种子数据