Set start value for column with autoincrement

后端 未结 4 1549
灰色年华
灰色年华 2020-11-28 23:47

I have a table Orders with the following fields:

Id | SubTotal | Tax | Shipping | DateCreated

The Id c

相关标签:
4条回答
  • 2020-11-28 23:58

    You need to set the Identity seed to that value:

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

    To alter an existing table:

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

    More info on CREATE TABLE (Transact-SQL) IDENTITY (Property)

    0 讨论(0)
  • 2020-11-29 00:03

    From Resetting SQL Server Identity Columns:

    Retrieving the identity for the table Employees:

    DBCC checkident ('Employees')
    

    Repairing the identity seed (if for some reason the database is inserting duplicate identities):

    DBCC checkident ('Employees', reseed)
    

    Changing the identity seed for the table Employees to 1000:

    DBCC checkident ('Employees', reseed, 1000)
    

    The next row inserted will begin at 1001.

    0 讨论(0)
  • 2020-11-29 00:21

    In the Table Designer on SQL Server Management Studio you can set the where the auto increment will start. Right-click on the table in Object Explorer and choose Design, then go to the Column Properties for the relevant column:

    Here the autoincrement will start at 760

    0 讨论(0)
  • 2020-11-29 00:23

    Also note that you cannot normally set a value for an IDENTITY column. You can, however, specify the identity of rows if you set IDENTITY_INSERT to ON for your table. For example:

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

    This insert will reset the identity to the last inserted value. From MSDN:

    If the value inserted is larger than the current identity value for the table, SQL Server automatically uses the new inserted value as the current identity value.

    0 讨论(0)
提交回复
热议问题