界面可以,SQL不可以,
SQL只能删了再加

解决方案 »

  1.   

    ..界面上改很简单.  为何SQL不行啊..蛋疼死了.
      

  2.   

    没有什么简单易行的方法。SQL Server的设计里并没有很简单的就现有的列加上或去掉标识属性的方法。最安全的办法是,创建一个新的列并设置为标识列,或者创建一个新的表,然后把数据移植进去。
      

  3.   

    ..界面上改很简单.  为何SQL不行啊..蛋疼死了.T-SQL目前是不支持这个操作的,你干脆就新增加一列,设置为identity属性,然后把主键的那个列的数据塞到新加的那个列,然后把原来的列删了,重新定义主键为新加的那个identity属性的列。
      

  4.   

    ..界面上改很简单.  为何SQL不行啊..蛋疼死了.T-SQL目前是不支持这个操作的,你干脆就新增加一列,设置为identity属性,然后把主键的那个列的数据塞到新加的那个列,然后把原来的列删了,重新定义主键为新加的那个identity属性的列。有木有SQL语句 = = 小弟新手..
      

  5.   

    ..界面上改很简单.  为何SQL不行啊..蛋疼死了.T-SQL目前是不支持这个操作的,你干脆就新增加一列,设置为identity属性,然后把主键的那个列的数据塞到新加的那个列,然后把原来的列删了,重新定义主键为新加的那个identity属性的列。有木有SQL语句 = = 小弟新手..
    这个真木有我刚才还特意测试了下木有很遗憾
    你看我测试的:
    alter table A alter column col1 int --成功
    alter table A alter column col1 int identity(1,1)--报错
      

  6.   

    ..界面上改很简单.  为何SQL不行啊..蛋疼死了.T-SQL目前是不支持这个操作的,你干脆就新增加一列,设置为identity属性,然后把主键的那个列的数据塞到新加的那个列,然后把原来的列删了,重新定义主键为新加的那个identity属性的列。有木有SQL语句 = = 小弟新手..
    这个真木有我刚才还特意测试了下木有很遗憾
    你看我测试的:
    alter table A alter column col1 int --成功
    alter table A alter column col1 int identity(1,1)--报错
    ...这个我已经试过了..所以才来问的..
      

  7.   

    删除原来的列,再增加 identity 列,可以使用 identity_insert 选项,把数据写进去。
      

  8.   

    ..界面上改很简单.  为何SQL不行啊..蛋疼死了.T-SQL目前是不支持这个操作的,你干脆就新增加一列,设置为identity属性,然后把主键的那个列的数据塞到新加的那个列,然后把原来的列删了,重新定义主键为新加的那个identity属性的列。有木有SQL语句 = = 小弟新手..真要写的话,那只能倒表了,我猜界面操作底层也是倒表--假设表名是TB,要设为自增的列为ID
    IF OBJECT_ID('TempDB..#Temp')IS NOT NULL
    DROP TABLE TempDB..#Temp
    SELECT * INTO TempDB..#Temp FROM TB
    DROP TABLE TB
    SELECT IDENTITY(INT,1,1) AS ID2,* INTO TempDB..#Temp FROM TB WHERE 1=2
    SET IDENTITY_INSERT TB ON
    INSERT INTO TB(ID2,ID,其他列名要写出来)
    SELECT ID,* FROM TempDB..#Temp
    ALTER TABLE TB DROP COLUMN ID
    EXEC SP_RENAME 'TB.ID2','ID'仅供参考
      

  9.   

    也可以重新创建一个新表,但不包括原表中的主键字段,增加一个自增字段名,
    然后将原表中除了主键字段的其他对应字段数,通过insert into new_table()  select ... from 原表  据依次放入建好的表中,也是一种方案吧,供楼主参考