企业管理器中很容易做到,但我尝试写SQL,总提示IDENTITY 附近有语法错误
我的写法
ALTER TABLE t_set ALTER COLUMN 年月 int IDENTITY (1, 1)请问正确的应该怎么写呢?

解决方案 »

  1.   

    /*老大的方法*/
    --創建環境
    CREATE TABLE t1(ID int IDENTITY,A int)
    GO
    --插入數據
    INSERT t1 VALUES(1)
    GO--1. 將IDENTITY列轉換成普通列
    ALTER TABLE t1 ADD ID_temp int
    GOUPDATE t1 SET ID_temp=ID
    ALTER TABLE t1 DROP COLUMN ID
    EXEC sp_rename N't1.ID_temp',N'ID',N'COLUMN'
    INSERT t1 VALUES(100,9)
    GO--2.  將普通列轉換成IDENTITY列
    CREATE TABLE t1_temp(ID int,A int IDENTITY)
    SET IDENTITY_INSERT t1_temp ON
    INSERT t1_temp(ID,A) SELECT * FROM t1
    SET IDENTITY_INSERT t1_temp OFF
    DROP TABLE T1
    GOEXEC sp_rename N't1_temp',N't1'
    INSERT t1 VALUES(109999)
    GO--結果
    SELECT * FROM t1
    /*
    ID          A 
    ----------------- ----------- 
    1           1
    100         9
    109999      10
    --*/
      

  2.   

    唔... 企业管理器也是这么做的...
    那是不是用ALTER TABLE 无法直接实现?
      

  3.   

    select a.*,id=identity(int,1,1) into newtablename from t_set a
      

  4.   

    可以这么说  要建立临时表 进行转换 才能添加 indetity字段的