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

本文介绍了一种在SQL Server中去除表中某列自增属性的方法。直接使用ALTER语句无法实现这一目标,可以通过更新系统表的方式达到目的,但这种方法存在风险。此外,还提供了一个折中的解决方案,即创建新列并复制旧列的数据,再删除旧列并重命名新列为原列名。
 
如何用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 '
---------------------------------------------
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值