使用自动增量设置列的起始值
我有一个表与以下领域的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将自动使用新插入的值作为当前标识值。