这是sp_rename函数或sql server本身的问题吗?

819*_*967 3 t-sql sql-server-2005

在重命名列名时,方括号包含在列名中,我认为这是一个错误,这是一个示例代码片段,

 create table [TestTable]

(TestColumnName nvarchar(30))

select TestColumnName from TestTable

sp_rename '[TestTable].[TestColumnName]', '[RenamedColumnName]', 'Column'

select [RenamedColumnName] from TestTable -- does not work "Invalid column name 'RenamedColumnName'."

select RenamedColumnName from TestTable -- does not work "Invalid column name 'RenamedColumnName'."

select * from [TestTable]  -- works fine!!!
Run Code Online (Sandbox Code Playgroud)

这里的错误是列重命名包括方括号,我发现表示"第一个字符必须是以下之一",但" [ "似乎没有包含在列表中,是否存在sp_rename问题或者sql server本身?,因为它允许更改列名以方括号开头.

Mar*_*rtW 5

代码中的列已重命名为实际包含[]的列,以查询您必须使用的列

SELECT [[RenamedColumnName]]] FROM TestTable
Run Code Online (Sandbox Code Playgroud)

]是一个分隔标识符,所以你必须逃避它.对于],这意味着名称中使用的每一个都是附加的].