我的一个表格中有一个列,其中有方括号[Book_Category]
,我想将其重命名为Book_Category
。
我尝试了以下查询:
sp_rename 'BookPublisher.[[Book_Category]]', 'Book_Category', 'COLUMN'
但是我收到了这个错误:
消息15253,级别11,状态1,过程sp_rename,行105语法 解析SQL标识符'BookPublisher。[[Book_Category]]'。
时出错
任何人都可以帮助我吗?
答案 0 :(得分:16)
你这样做就像你创建它一样:
exec sp_rename 'BookPublisher."[Book_Category]"', 'Book_Category', 'COLUMN';
这是我做的一个小样本来测试这是否可能。起初我只是假设它是如何误解[]
如何在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
答案 1 :(得分:2)
这对我有用:
exec sp_rename ‘[dbo].[TableName].[OldColumnName]’, ‘NewColumnName’
答案 2 :(得分:0)
不需要双引号。你只需加倍关闭方括号,如下:
EXEC sp_rename 'BookPublisher.[[Book_Category]]]', 'Book_Category', 'COLUMN';
您可以使用quotename
功能
SELECT QuoteName('[Book_Category]');
-- Result: [[Book_Category]]]
这也适用于创建列:
CREATE TABLE dbo.Book (
[[Book_Category]]] int -- "[Book_Category]"
);
答案 3 :(得分:0)
得到了这个错误,并想知道为什么。如果您要更改的列名不存在,则可以获得此确切错误。不妨加倍确定你是否仍然会遇到这个错误。