我有列名[car_no]我要重命名....
我这样想:
exec sp_rename 'add_duty_slip.[car_no]' , 'car_no', 'column'
但它不起作用。
谢谢
答案 0 :(得分:5)
您的代码就像魅力一样。请参阅this fiddle。
但是对旧名和新名使用相同的名称将无能为力。
为两者使用不同的名称(即实际重命名列),例如:
exec sp_rename 'add_duty_slip.[car_no]' , 'car_no1', 'column'
效果也不错。请参阅this other fiddle。
编辑:
如果这是您问题的真正含义,括号([]
)不是列名的一部分,它们只是包含不规则字符(例如空格)的名称的分隔符。因此,[car_no]
和car_no
实际上是完全相同的名称。
如果你的专栏名称真的括在括号内,你可以这样做:
exec sp_rename 'add_duty_slip."[car_no]"' , 'car_no', 'column'
请参阅this fiddle。
答案 1 :(得分:0)
这会对你有帮助。
sp_RENAME 'TableName.[OldColumnName]' , '[NewColumnName]', 'COLUMN'
此外,由于旧名称和新名称都相同,因此即使在运行代码后也无法注意到更改。
答案 2 :(得分:0)
你试过这个:
EXEC sp_rename
@objname = 'table_name.old_column_name',
@newname = 'new_column_name',
@objtype = 'COLUMN'
答案 3 :(得分:0)
试试这个
重命名任何列的脚本:
sp_RENAME 'TableName.[OldColumnName]' , '[NewColumnName]', 'COLUMN'
重命名任何对象(table,sp等)的脚本:
sp_RENAME '[OldTableName]' , '[NewTableName]'