代码之家  ›  专栏  ›  技术社区  ›  MartinHN

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

  •  51
  • MartinHN  · 技术社区  · 15 年前

    我有一张桌子 Orders 具有以下字段:

    Id |小计|税|运费|日期已创建

    这个 Id autoincrement(1,1) .

    这将用于电子商务店面。有时,当前的电子商务商店被迁移到我的平台上,他们已经有了订单——这可能意味着他们当前的 Order.Id 比如说,, 9586 .

    我想要一个 autoincrement

    我该怎么做?

    3 回复  |  直到 12 年前
        1
  •  135
  •   Michael Myers KitsuneYMG    8 年前

    从…起 Resetting SQL Server Identity Columns :

    正在检索表的标识 Employees :

    DBCC checkident ('Employees')
    

    修复标识种子(如果出于某种原因数据库正在插入重复标识):

    DBCC checkident ('Employees', reseed)
    

    更改表的标识种子 员工 至1000:

    DBCC checkident ('Employees', reseed, 1000)
    

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

        2
  •  27
  •   MIWMIB    5 年前

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

    要更改现有表,请执行以下操作:

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

    更多关于 CREATE TABLE (Transact-SQL) IDENTITY (Property)

        3
  •  11
  •   Pang Ajmal PraveeN    7 年前

    还要注意,通常不能为标识列设置值。但是,如果设置 IDENTITY_INSERT 我来为你的桌子准备。例如:

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

    此插入将把标识重置为上次插入的值。从…起 MSDN :

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