Adding auto incrementing primary key to an existing table in SQL SERVER 2005

前端 未结 5 1459
逝去的感伤
逝去的感伤 2021-01-14 11:26

I have a table with 8,000 rows of data and will be adding more. but I forgot to put a primary key in the beginning. so that each row has a unique key. later i added a primar

相关标签:
5条回答
  • 2021-01-14 12:04

    Get rid of the column you just added. Then run this

    ALTER TABLE table
    ADD ID INT IDENTITY
    
    ALTER TABLE table
    ADD CONSTRAINT PK_table
    PRIMARY KEY(ID)
    
    0 讨论(0)
  • 2021-01-14 12:04

    You can update table based on unique key. Declare @i int=1 While(@i <=(select count(*) from table)) Begin

    Update table Set primary_key_column=@i Where

    Set@i=@i+1 End

    0 讨论(0)
  • 2021-01-14 12:13

    As per your requirement you just needed a sql query that will update the entire table with the new primary key values in an incremental fashion. Here is is :

    UPDATE myTable
    SET ID = ID + 1
    

    Where ID is the PK field name

    Once Updated do not forget to add identity column as shown below :

    ALTER TABLE table
    ADD ID INT IDENTITY
    
    ALTER TABLE table
    ADD CONSTRAINT PK_table
    PRIMARY KEY(ID)
    
    0 讨论(0)
  • 2021-01-14 12:16
    CREATE TABLE [dbo].[TheTable](
        [TheID] [int] IDENTITY(1,1) NOT NULL,
        [TheColumn] [nvarchar](100) NOT NULL,
     CONSTRAINT [PK_TheTable] PRIMARY KEY CLUSTERED 
    (
        [TheID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    
    INSERT INTO [dbo].[TheTable]
            ( [TheColumn] )
    SELECT 'one'
    UNION 
    SELECT 'two'
    
    SELECT * FROM [dbo].[TheTable] TT
    
    0 讨论(0)
  • 2021-01-14 12:18

    Open Table Design, Add New Column u want Select the column and in Properties In Identity Specification make (Is Identity) Yes.. You can start from where you want by setting the Identity Seed property, by Default it starts from 1.

    If you have already Identity Column u can also update it.
    Step 1: Remove Identity Specification from Column in Table Design.
    Step 2: Use Cursor to Update table Column starting from 1.
    Step 3: Again apply Identity Specification on Column in Table Design
    Step 4: By query reset Identity Column, from the value u want. e.g
    DBCC CHECKIDENT("TableName",Reseed,8000);
    so the next identity value will be 8001.

    enter image description here

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