alter table add column NEW字段 int
update 表 set NEW字段=标识字段名
alter table drop column 标识字段名

解决方案 »

  1.   

    alter table tablename add id1 intupdate tablename set id1=idalter table tablename drop column idexec sp_rename 'tablename.id1','id'或select cast (id as int) id,列..... into #temp from 表
    drop table 表
    select * into 表 from #temp
    drop table #temp
      

  2.   

    CrazyFor(蚂蚁)兄,能否不删除该字段而直接改为非标识字段。
    tj_dns(愉快的登山者)兄,我是想用程序实现。
      

  3.   

    SQLServer的各个系统表中有无记录字段是否标志的信息的字段,如果有,是哪个?改那些值行不行?
      

  4.   

    我发现syscolmuns表里的colstat字段,如果是用户表且字段为标志则该字段值为1,如不是标志则为0,能否以此判断是否为标志字段?
      

  5.   

    系统表应该是不能直接修改的:
    syscolumns表中,通过判断status的值,如果是0x80,则表示此列为标识字段status tinyint 用于描述列或参数属性的位图: 
    0x08 = 列允许空值。
    0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。
    0x40 = 参数为 OUTPUT 参数。
    0x80 = 列为标识列。
      

  6.   

    set indentity_insert table_name on 插入的列值由自己指定而不是自增长的