我想在sql server中重命名列名

时间:2013-09-12 08:23:55

标签: sql sql-server

我有列名[car_no]我要重命名....

我这样想:

exec sp_rename 'add_duty_slip.[car_no]' , 'car_no', 'column'

但它不起作用。

谢谢

4 个答案:

答案 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]'