【发布时间】:2020-07-15 14:33:06
【问题描述】:
T-SQL 中字符串文字的完整语法是什么?
我在官方文档中找不到任何明确的字符串语法定义,而且我能找到的任何博客文章都只提到了某些方面(如N 前缀)。此外,Stack Overflow 或其他网站上询问如何转义字符串的任何帖子都有指向使用参数而不是回答问题的答案,这并没有提供我正在寻找的信息。
据我所知,字符串文字以可选的N 开头,后跟单引号(或双引号,如果以某种方式设置),字符串中的单引号通过加倍转义单引号和反斜杠通过加倍反斜杠进行转义(可能仅当设置以某种方式设置时?)。
此信息是否有权威和/或全面的来源?即使只是保留/特殊字符的列表也会比我能找到的要好。
【问题讨论】:
-
您是否参考过本文档? docs.microsoft.com/en-us/sql/t-sql/data-types/….
-
反斜杠在 tsql 中没有特定含义。大概您的上下文是另一种语言,例如 csharp ,确实需要对其进行转义。如果是这样,你应该说清楚。
-
文档确实在Character string constants 的第三段中提到了单引号需要转义。其他任何东西都只是一个角色。没有转义序列。 SQL,语言本身,在文本处理方面并不出色,而 T-SQL 比平常更糟糕。输入制表符或非英文字符很简单——只需输入字符即可。没必要逃跑
-
@GPHemsley 如果你这样做了,它可能会被否决。你还没有问一个具体的问题。很明显,您有一些 other 问题,并认为转义是一种解决方案。这不是
-
你明白了,实际上是在发布问题之前阅读的所有文章和文档中自己发现的。除了转义单引号之外,没有特殊的语法。这就是为什么所有文章和 SO 答案都说您应该使用参数化查询
标签: sql sql-server tsql