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本身?,因为它允许更改列名以方括号开头.
代码中的列已重命名为实际包含[]的列,以查询您必须使用的列
SELECT [[RenamedColumnName]]] FROM TestTable
Run Code Online (Sandbox Code Playgroud)
]是一个分隔标识符,所以你必须逃避它.对于],这意味着名称中使用的每一个都是附加的].