以下产生错误:
SELECT 1 AS [dada[daa]]
Msg 105,第 15 级,状态 1,第 190 行
字符串“dada[daa]”。
消息 102,第 15 级,状态 1,第 190 行
“dada[daa]”附近的语法不正确。
如果列别名中有方括号,我可以使用如下引号:
SELECT 1 AS 'dada[daa]'
但我正在构建一些复杂的动态 T-SQL 语句,每个列别名都用方括号括起来,如果别名包含括号,则使用引号会使事情变得有点困难。
那么,有没有办法以某种方式逃脱这些括号呢?
您需要将它们加倍,就像单引号一样 ('
):
SELECT *
FROM [My]]Table];
不过,您只需要使用右括号来完成此操作,左括号则不需要。例如:
SELECT *
FROM [My[Table];
然而基于这个声明“但我正在构建一些复杂的动态 T-SQL 语句,每个列别名都用方括号括起来,如果别名包含括号,则使用引号会使事情变得有点困难。”看起来你正在做类似的事情'... FROM [' + @TableName + '] ...'
;不。使用QUOTENAME
: '... FROM ' + QUOTENAME(@TableName) + '...'
.
QUOTENAME
正确引用并转义您的变量。所以,对于价值'[MyTable]'
,它会返回'[[MyTable]]]'
。它还有第二个可选参数,可用于用其他标识符引用输入字符串。例如,假设变量@String
具有“不”值,QUOTENAME(@String, '''')
会回来'Don''t'
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)