如果用sql查询命令 修改一个表的 自动增长字段如把tableA 的 id 字段改成 自动加1第二个是把自动加1的又改回来,改成非 标识规范写二句

解决方案 »

  1.   

    第一个改动的时候要删除原有的id列,然后增加一个自增字段。第二个需要增加一个字段,更新这个新字段的值为自增的字段值,然后把自增字段删除,修改新字段名为id
      

  2.   

    参考:
    http://www.cnblogs.com/qiantuwuliang/archive/2009/12/03/1616288.html
      

  3.   

    改列名不就行了吗 
    exec sp_rename '表名.[原列名]', '新列名'
      

  4.   


    我只是想把一个表的数据复制到另一个表,而且要连id也复制过去,然后把目标表的id在改成标识,以便以后添加数据id自动增长
      

  5.   


    set identity_insert tb1 on
    insert into tb1(id,c1,c2,..)
    select id,c1,c2,.. from tb2
    set identity_insert tb1 off
      

  6.   

    --创建测试表
    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. 将普通列变为标识列
    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
    --*/
      

  7.   

    没有语句能够使已经存在的列变成自增的但是,方法还是有的。
    --1
    select * into tb_name_temp from tb_name where 1=0
    --2
    alter table tb_name_temp add id_temp int   IDENTITY(1,1)
    --3 插入数据
    set identity_insert tb_name_temp on
    insert into tb_name_temp(add id_temp, col1,col2.....)
    select id,col1,col2..... from tb_name
    set identity_insert tb_name_temp on其它的表也这么处理