更改列的名称应当使用系统的存储过程 sp_rename,而不是Alter table 语句。sp_rename用于修改当前数据库中用户所创建对象的名称,包括表、索引、列、别名数据类型或Microsoft.NetFramewoek 公共语言运行(CIR) 时用户定义数据类型。
sp_rename的语法格式如下:
sp_rename [@objname=] ‘object_Name’ ,[@newName] ‘New_Name’ [. [@objtype =] ‘objtype’]
○ [@objname=] ‘objname’ 用户对象或数据类型的当前限定或非限定名称。如果要重命名的对象是表中的列,则object_name 的格式必须是table.column。
○ [@NewName=] ‘NewName’ 指定对象的新名称。
○ [@objtype] ‘object_type’ 要重命名的对象的类型,可用值如表所示。
Column |
要重命名的列 |
Database |
要重命名的是用户定义数据库 |
Index |
要重命名的是用户定义的索引 |
Object |
要重命名的约束、用户表盒规则等 |
Userdatatype |
要重命名的是别名数据库类型或CIR用户定义的数据类型 |
列如下面的语句将customers表的email列重命名emailNew
exec sp_rename ‘Customers.Email’,’EmailNew’,’column’