我有一个表Orders
,其中包含以下字段:
Id |小计|税|运输| dateCreated会
Id
列设置为autoincrement(1,1)
。
这将用于电子商务店面。有时,当前的电子商务商店会迁移到我的平台,并且他们已经拥有订单 - 这可能意味着他们当前的Order.Id
就是9586
。
我希望autoincrement
字段从该值开始。
我该怎么做?
答案 0 :(得分:94)
来自Resetting SQL Server Identity Columns:
检索表Employees
的身份:
DBCC checkident ('Employees')
修复身份种子(如果由于某种原因,数据库正在插入重复的身份):
DBCC checkident ('Employees', reseed)
将表Employees
的标识种子更改为1000:
DBCC checkident ('Employees', reseed, 1000)
插入的下一行将从1001开始。
答案 1 :(得分:25)
您需要将Identity种子设置为该值:
CREATE TABLE orders
(
id int IDENTITY(9586,1)
)
要更改当前表格:
ALTER TABLE orders ALTER COLUMN Id IDENTITY (9586, 1);
的更多信息
答案 2 :(得分:9)
另请注意,您通常无法为IDENTITY列设置值。但是,如果为表设置IDENTITY_INSERT为ON,则可以指定行的标识。例如:
SET IDENTITY_INSERT Orders ON
-- do inserts here
SET IDENTITY_INSERT Orders OFF
此插入会将标识重置为最后插入的值。来自MSDN:
如果插入的值大于当前的标识值 在表中,SQL Server自动使用新插入的值作为 目前的身份价值。
答案 3 :(得分:2)
在SQL Server Management Studio的表设计器中,您可以设置自动增量开始的位置。右键单击对象资源管理器中的表,然后选择“设计”,然后转到相关列的“列属性”: