Sql Server 更换列名脚本

前段时间发现自己之前建的表名字段拼写存在问题,趁该表数据量还不算大的时候,编写脚本修改列名。

1. 比较简单粗暴的方式是:

EXEC sp_rename @objname='[schema].[tablename].[errorcolumnname]',@newname='newname',@objtype='column'

2. 保险方法:【步骤:新增列,将问题列数据copy,删除问题列的约束,删除问题列】

IF COL_LENGTH('tablename', 'errorcolumnname') IS NOT NULL

BEGIN  

SET XACT_ABORT ON    

begin transaction UpdateColumnName 

ALTER TABLE [schema].[tablename]  ADD [newname] INT NOT NULL DEFAULT(0)    

Exec sp_executesql N'UPDATE [schema].[tablename] SET [newname] = [errorcolumnname]'

DECLARE  @constraintName NVARCHAR(100)  

SELECT @constraintName = b.name FROM sysobjects b JOIN syscolumns a ON b.id = a.cdefault WHERE a.id = object_id('tablename') AND a.name = 'errorcolumnname'

IF @constraintName IS NOT NULL  

BEGIN   

EXEC ('ALTER TABLE [schema].[tablename] DROP CONSTRAINT '+ @constraintName)  

END     

ALTER TABLE [schema].[tablename]  

DROP COLUMN errorcolumnname  

commit transaction UpdateColumnName

END

 

转载于:https://www.cnblogs.com/Ying150318/p/5923924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值