如何在SP参数内转义方括号

时间:2018-06-18 16:45:49

标签: sql-server stored-procedures

我正在尝试使用存储过程sp_rename来更改列名。但是,我在尝试引用列时遇到错误,因为它们包含符号[和]。我甚至不能选择:

select [Materials].[All] from Temp_Table
  

Msg 4104,Level 16,State 1,Line 1   无法绑定多部分标识符“Materials.All”。

“[Materials]。[All]”是列的名称。我试过这样的话:

  • 从Temp_Table
  • 中选择“[Materials]。[All]”
  • 从Temp_Table
  • 中选择[[Materials]。[All]]

你看到任何解决方案吗?感谢。

编辑:好的,已经提出了一些解决方案使它在select语句中工作,但是在存储过程中使用它时仍然会出错:

EXEC sp_rename '[DBName].[Temp_Table].[Materials].[Material Type].[All]]', 'All', 'COLUMN'; 

错误:语法错误解析SQL标识符'[KS_Control_Area]。[Temp_Table_MaterialType_Mios]。[Materials]。[Material Type]。[All]]'。

1 个答案:

答案 0 :(得分:0)

您需要正确引用列名称。因此,对于名为silly[column]name的列,您将使用[silly[column]]name]。请注意,名称中的[不需要转义,但]会转义(]])。