一尘不染

必须在Tsql中转义的字符

sql

我一直在寻找必须在ms
sql服务器中转义的特殊字符列表,但找不到针对我建议使用参数化查询的类似问题的大部分答案。我已经在做,但是我正在使用的框架没有为我做任何逃避。

因此,我以为我会尝试一下,看看哪个失败了....我尝试了一个简单的查询

select * from x where value = '<characters>'

在这样的查询中,我尝试了几乎可以在键盘上找到的所有字符,并且所有这些字符似乎都可以正常工作……除了单引号..那个失败了。

因此,我想知道无效的字符列表,这些字符必须在ms sql服务器-tsql中进行转义,并且不想冒只转义单引号并留下可能引起麻烦的其余字符的风险。

感谢你的帮助


阅读 144

收藏
2021-03-10

共1个答案

一尘不染

需要在字符串中转义的唯一字符是单引号(将两个单引号一起使用)。否则,它是一个字符串,而t-sql不会再大惊小怪了。

如果您使用的是LIKE语句,请参见此SO主题在SQL
Server中转义字符串,以便可以在LIKE表达式中安全使用

顺便说一句,任何不让我使用参数的框架,如果不能为我适当地逃避某些东西,都是很难的。尝试手动清理字符串输入就像依赖于pull方法。最终它会得到你的。

2021-03-10