如何重命名名称中带有方括号的SQL Server中的内容?

raj*_*esh 8 sql sql-server sql-server-2008

我的一个表中有一个列,其周围有方括号[Book_Category],我想重命名为Book_Category.

我尝试了以下查询:

sp_rename 'BookPublisher.[[Book_Category]]', 'Book_Category', 'COLUMN'

但是我收到了这个错误:

消息15253,级别11,状态1,过程sp_rename,行105语法错误解析SQL标识符'BookPublisher.[[Book_Category]]'.

谁能帮我?

Dav*_*haw 17

您可以像创建它一样执行此操作:

exec sp_rename 'BookPublisher."[Book_Category]"', 'Book_Category', 'COLUMN';
Run Code Online (Sandbox Code Playgroud)

这是我做的一个小样本来测试这是否可能.起初我只是假设它是如何[]在SQL Server中使用的误解,结果我错了,有可能 - 你必须在括号外使用双引号.

begin tran

create table [Foo] ("[i]" int);

exec sp_help 'Foo';

exec sp_rename 'Foo."[i]"', 'i', 'column ';

exec sp_help 'Foo';

rollback tran
Run Code Online (Sandbox Code Playgroud)