在SQL Server中转义字符串

时间:2014-02-22 18:48:43

标签: sql-server regex escaping

在SQL中转义部分字符串时遇到问题。例如:

SELECT TOP 10000 *
FROM experience
WHERE name IS
'AT&T'

在'AT'附近的错误语法附近说错误的语法。似乎它的问题与& - 逃避是否有任何一般规则?

还试过

SELECT TOP 10000 *
FROM experience
WHERE name Like
'AT&\T'

虽然没有给出任何结果(有结果可以出现),但仍有效。

1 个答案:

答案 0 :(得分:2)

字符串文字中唯一需要转义的字符是单引号。 '。通过将它们加倍而不是反斜杠来逃避。

SELECT 'O''Reilly'

在绝大多数情况下,您应该使用参数化查询,甚至不需要这样做。

要使用的正确运算符是=

SELECT TOP 10000 *
FROM experience
WHERE name = 'AT&T'

工作正常SQL Fiddle Demo

IS仅与[NOT] NULL

一起使用

反斜杠在字符串文字中唯一的特殊意义是,如果它在换行符之前立即作为行继续符。

PRINT 'This is all \
one line'

返回

  

这是一行