设置具有自动增量的列的起始值

时间:2009-08-14 23:44:46

标签: sql-server

我有一个表Orders,其中包含以下字段:

  

Id |小计|税|运输| dateCreated会

Id列设置为autoincrement(1,1)

这将用于电子商务店面。有时,当前的电子商务商店会迁移到我的平台,并且他们已经拥有订单 - 这可能意味着他们当前的Order.Id就是9586

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

我该怎么做?

4 个答案:

答案 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);

有关CREATE TABLE (Transact-SQL) IDENTITY (Property)

的更多信息

答案 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的表设计器中,您可以设置自动增量开始的位置。右键单击对象资源管理器中的表,然后选择“设计”,然后转到相关列的“列属性”:

Here the autoincrement will start at 760