使用自动增量设置列的起始值

我有一个表与以下领域的Orders

Id | SubTotal | 税| | 运送| 创builddate

Id列设置为autoincrement(1,1)

这是要在电子商务店面中使用。 有时,当前的电子商务商店被迁移到我的平台,他们已经有订单 – 这可能意味着他们目前的Order.Id是,例如, 9586

我希望autoincrement字段从该值开始。

我怎样才能做到这一点?

从重置SQL Server标识列 :

检索表的标识Employees

 DBCC checkident ('Employees') 

修复身份种子(如果由于某种原因数据库插入重复的身份):

 DBCC checkident ('Employees', reseed) 

将表Employees的标识种子更改为1000:

 DBCC checkident ('Employees', reseed, 1000) 

插入的下一行将从1001开始。

您需要将Identity种子设置为该值:

 CREATE TABLE orders ( id int IDENTITY(9586,1) ) 

改变当前表格:

 ALTER TABLE orders ALTER COLUMN Id IDENTITY (9586, 1); 

有关CREATE TABLE(Transact-SQL)的更多信息IDENTITY(Property)

另外请注意,您通常不能为IDENTITY列设置值。 但是,如果将IDENTITY_INSERT设置为ON,则可以指定行的标识 。 例如:

 SET IDENTITY_INSERT Orders ON -- do inserts here SET IDENTITY_INSERT Orders OFF 

此插入将重置身份到最后插入的值。 来自MSDN :

如果插入的值大于表的当前标识值,则SQL Server将自动使用新插入的值作为当前标识值。