我有一些生成列名的动态 SQL。一个简单的例子可能是这样的:
SELECT dbo.getSomething(123) [Eggs[scrambled] or Bacon[fried]]
最终的列名称应该是这样的:
鸡蛋[炒]或培根[煎]
如果我尝试运行它,它将在“OR”一词上出错(即使我将其替换为 xyz,它仍然会在该标记上出错)。如果我去掉里面的方括号,问题就解决了。所以我的结论是你不能嵌套方括号,除非你以某种方式转义它们。
在这种情况下我该如何逃脱他们?
您可以使用quotename
函数来查看正确的转义。
select quotename('Eggs[scrambled] or Bacon[fried]')
Returns
[Eggs[scrambled]] or Bacon[fried]]]
因此所有右方括号都需要加倍。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)