在不动用sp_configure的情况下,如何 =》去掉列的自增长,并保留原数据

简介:

 异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html

后期博客首发:http://dnt.dkill.net/Article/Detail/317

应用场景:权限不够(只是某个用户,权限很低,不能使用sp_configure

执行

附录:

1
2
3
4
update  BackupShopMenu  set  TempId=MId
alter  table  BackupShopMenu  drop  column  MId
exec  sp_rename  'BackupShopMenu.TempId' 'MId' 'column'
alter  table  BackupShopMenu  alter  column  MId  int  not  null  --如果你的字段是可以为null就不需要这段了

网上参考:

如何用sql语句去掉列的自增长(identity) 

**无法通过alter把现有自增字段改为非自增 
比如alter   table   a   alter   id   int,自增属性不会去掉 
通过修改系统表可以做到(此法可能有不可预知的结果,慎之...) 
sp_configure   'allow   updates ',   1 
GO 
reconfigure   with   override 
GO 
update   syscolumns   set   colstat   =   colstat   &   0x0000   
where     id=object_id( '表名 ')   and   name= '字段名 ' 
GO 
sp_configure   'allow   updates ',   0 

--------------------------------------------- 
--折中的办法 
alter   table   a   add   xxx   int 
update   a   set   xxx=id 
alter   table   a   drop   column   id 
exec   sp_rename   'xxx ',   'id ',   'column ' 
---------------------------------------------

 

目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
110 0
|
2月前
|
存储 关系型数据库 数据库
在 Postgres 中使用更改列类型
【8月更文挑战第11天】
106 0
在 Postgres 中使用更改列类型
|
SQL 关系型数据库 MySQL
MySQL变量使用与介绍之为查询结果增加序号列和自定义序号列
SQL三:用户表(包含字段有:用户ID[自增]、姓名、性别、民族、出生日期、身份证号),无论查询条件如何,要求查询的结果显示一个行号列(即:第一行显示1,第二行显示2,第三行显示3,依此类推)
238 0
|
Oracle 关系型数据库
ORA-01779: 无法修改与非键值保存表对应的列
ORA-01779: 无法修改与非键值保存表对应的列
ORA-01779: 无法修改与非键值保存表对应的列
|
数据库
修改MSSQL自增列标识值
  执行数据库插入语句 IF EXISTS (SELECT 1 FROM [Tag] WHERE [Name]='发哥') BEGIN SELECT [ID] FROM [Tag] WHERE [Name]='发哥' END Else BEGIN INSERT I...
1173 0