作者:蓝月亮乐悠悠 | 来源:互联网 | 2023-05-18 15:42
请问在SQLSERVER中怎样给列重命名?为什么语句:ALTERTABLETableNameRENAMECOLUMNOldFieldNameTONewFieldName不行呢
请问在SQLSERVER中怎样给列重命名?
为什么语句:
ALTER TABLE TableName RENAME COLUMN OldFieldName TO NewFieldName
不行呢? 似乎RENAME并不是SQLSERVER中的关键字。
6 个解决方案
重命名列
下例将表 customers 中的列 contact title 重命名为 title。
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'
EXEC sp_rename 'tablename.[OldFieldName ]', 'NewFieldName', 'COLUMN'
有没有不用存储过程的方法呢?或者说是有没有能在T-SQL和P-SQL中都能用的方法?
有存储过程就方便. exec sp_rename '旧名','新名'
不想用: ALTER TABLE TableName
drop column 旧名
add column 新名 类型
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
参数
[@objname =] 'object_name'
是用户对象(表、视图、列、存储过程、触发器、默认值、数据库、对象或规则)或数据类型的当前名称。如果要重命名的对象是表中的一列,那么 object_name 必须为 table.column 形式。如果要重命名的是索引,那么 object_name 必须为 table.index 形式。object_name 为 nvarchar(776) 类型,无默认值。
[@newname =] 'new_name'
是指定对象的新名称。new_name 必须是名称的一部分,并且要遵循标识符的规则。newname 是 sysname 类型,无默认值。
[@objtype =] 'object_type'