我的一个表格字段ID在设计的时候是自动编号,现在里面有数据了。
如果通过写update,把这个字段变成非自动编号的int类型呢?谢谢

解决方案 »

  1.   

    将相应的自增列变成普通
    alter table 表名 alter column 列名 int
      

  2.   

    ALTER TABLE [dbo].[表名] ADD [tempid] int
    go
    UPDATE [dbo].[表名] set [tempid] = [自增ID]  
    go 
    ALTER TABLE [dbo].[表名] DROP COLUMN [自增ID] 
    go  
    EXEC sp_rename '表名.tempid','自增ID'
      

  3.   

    在插入的时候可以类似一下格式
    SET IDENTITY_INSERT 表 ONINSERT INTO 表 (id, 其它列) VALUES(?, ?。)SET IDENTITY_INSERT 表 OFF
      

  4.   

    alter table 表名 alter column 列名 int
      

  5.   

    alter table 表名 alter column 列名 int 这个不成,还是自动编号梅的方法可行,但是改变后新的字段就会排在最后,如何能让这个字段排在第一列呢
      

  6.   

    EXEC sp_configure 'allow updates',1
    GO
    RECONFIGURE WITH OVERRIDE
    GOUPDATE syscolumns SET rowid= WHERE id=object_id(N'表名')(这里只是个例子!在删除和修改了列以后,syscolumns里面的rowid(可能是cowid吧)现在手头没有数据库软件,没有办法看,你可以看到这列是排了序号的,在这里你把序号重新修改就可以了。
    GOEXEC SP_CONFIGURE 'allow updates',0
    GO
    RECONFIGURE WITH OVERRIDE
    GO