zoukankan      html  css  js  c++  java
  • How to alter column to identity(1,1)

    You can't alter the existing columns for identity.

    You have 2 options,

    1. Create a new table with identity & drop the existing table

    2. Create a new column with identity & drop the existing column

    But take spl care when these columns have any constraints / relations.

     

    Code Snippet

    /*

                For already craeted table Names

                Drop table Names

                Create table Names

                (

                            ID int,

                            Name varchar(50)

                )

     

                Insert Into Names Values(1,'SQL Server')

                Insert Into Names Values(2,'ASP.NET')

                Insert Into Names Values(4,'C#')

    */

     

    Code Snippet

    --In this Approach you can retain the existing data values on the newly created identity column

    CREATE TABLE dbo.Tmp_Names

                (

                Id int NOT NULL IDENTITY (1, 1),

                Name varchar(50) NULL

                ) ON [PRIMARY]

     

    go

    SET IDENTITY_INSERT dbo.Tmp_Names ON

     

    go

    IF EXISTS(SELECT * FROM dbo.Names)

                INSERT INTO dbo.Tmp_Names (Id, Name)

                            SELECT Id, Name FROM dbo.Names TABLOCKX

     

    go

    SET IDENTITY_INSERT dbo.Tmp_Names OFF

     

    go

    DROP TABLE dbo.Names

     

    go

     

    Exec sp_rename 'Tmp_Names', 'Names'

     

    Code Snippet

    --In this approach you can’t retain the existing data values on the newly created identity column;

    --The identity column will hold the sequence of number

     

    Alter Table Names Add Id_new Int Identity(1,1)

    Go

     

    Alter Table Names Drop Column ID

    Go

     

    Exec sp_rename 'Names.Id_new', 'ID','Column'

     

     

     

    ------------------------------------------------------------------------------------------------

     

     

    Code Snippet

    --create test table

    create table table1 (col1 int, col2 varchar(30))

    insert into table1 values (100, 'olddata')

     --add identity column

    alter table table1 add col3 int identity(1,1)

    GO

    --rename or remove old column

    exec sp_rename 'table1.col1', 'oldcol1', 'column'

    OR

    alter table table1 drop column col1

    --rename new column to old column name

    exec sp_rename 'table1.col3', 'col1', 'column'

    GO

    --add new test record and review table

    insert into table1 values ( 'newdata')

    select * from table1

  • 相关阅读:
    OC中Foundation框架之NSDictionary、NSMutableDictionary
    【03_136】Single Number
    【算法】QuickSort
    【02_258】Add Digits
    【01_292】Nim Game
    做题过程中得到的注意点
    No.02——第一次使用Android Studio,并创建出Hello World
    No.01——配置编程环境
    一个好用的代码分享网站
    【数据结构】某些难理解点
  • 原文地址:https://www.cnblogs.com/no7dw/p/1620754.html
Copyright © 2011-2022 走看看