SQL Server:更改身份种子

时间:2018-11-27 20:10:09

标签: sql sql-server ssms

我正在将数据从一个数据库迁移到另一个数据库。我的脚本已经基本在一起,但是我正在尝试找出对新数据库中的表进行一次更改的最佳方法。

我有一个Customer表。该表有一个customer_id列,它是标识列。我想将标识种子/增量从(1,1)更改为(200,1),而无需更改将要插入表中的现有数据的customer_id。

旧数据为101-108。基本上,我们希望保持旧数据不变,以便与其他系统中的旧记录匹配,但我们希望新数据从200开始播种。

我尝试了Googling的操作方法,但是我的所有Googling都返回了结果,人们希望更改身份列而不是更改身份种子编号。我可以使用一个简单的查询来完成我想做的事情吗?

2 个答案:

答案 0 :(得分:1)

您可以使用DBCC CHECKIDENT:

DBCC CHECKIDENT ('dbo.customer', RESEED, 200)

这将更改指定表的身份列的当前种子值。如果需要插入特定的标识值,则可以在插入语句中SET IDENTITY_INSERT ON

IDENTITY_INSERT

答案 1 :(得分:0)

我要做的是将新列设置为标识(使用alter table),然后从旧表中插入数据,然后再次将新列重置为标识,并根据链接的需要增加任意值< / p>

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property?view=sql-server-2017