• 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

  • 相关阅读:
    13.sqoop的安装
    12.Flume的安装
    11.把文本文件的数据导入到Hive表中
    10.hive安装
    9.centos7 安装mysql
    8.时间同步
    7.编写mapreduce案例
    mysql中如何处理字符
    装箱拆箱隐含的问题
    何谓幂等性
  • 原文地址:https://www.cnblogs.com/no7dw/p/1620754.html
Copyright © 2020-2023  润新知