我一直在寻找必须在ms sql服务器中转义的特殊字符列表,但找不到针对我建议使用参数化查询的类似问题的大部分答案。我已经在做,但是我正在使用的框架没有为我做任何逃避。
因此,我以为我会尝试一下,看看哪个失败了....我尝试了一个简单的查询
select * from x where value = '<characters>'
在这样的查询中,我尝试了几乎可以在键盘上找到的所有字符,并且所有这些字符似乎都可以正常工作……除了单引号..那个失败了。
因此,我想知道无效的字符列表,这些字符必须在ms sql服务器-tsql中进行转义,并且不想冒只转义单引号并留下可能引起麻烦的其余字符的风险。
感谢你的帮助
需要在字符串中转义的唯一字符是单引号(将两个单引号一起使用)。否则,它是一个字符串,而t-sql不会再大惊小怪了。
如果您使用的是LIKE语句,请参见此SO主题在SQL Server中转义字符串,以便可以在LIKE表达式中安全使用
顺便说一句,任何不让我使用参数的框架,如果不能为我适当地逃避某些东西,都是很难的。尝试手动清理字符串输入就像依赖于pull方法。最终它会得到你的。