SQL Server Characters that must be escaped in T-SQL

63lcw9qa  于 2023-02-28  发布在  其他
关注(0)|答案(3)|浏览(212)

I was looking for a list of special characters that must be escaped in ms sql server but could not find one and most of answers I saw for the similar questions advised to use Parameterised queries.. which I am already doing but the framework I am using does not does any escaping for me.

Thus I thought I will give a bunch of those a try and see which one fails.... and I tried a simple query

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

in such query I tried almost all the characters I could find on my keyboard and all of them seem to work... besides the Singe Quote.. that one fails.

Thus I want to know the list of characters that are invalid and must be escaped in ms sql server - tsql and do not want to take the risk of just escaping the single quote and leave the rest that could cause trouble

Appreciate your help

amrnrhlw

amrnrhlw1#

The only character that needs escaping in a string is a single quote (which is done with two single quotes together). Otherwise, it's a string and t-sql will fuss with it no further.

If you're using a LIKE statement, see this SO topic Escape a string in SQL Server so that it is safe to use in LIKE expression

As an aside, any framework that doesn't let me use parameters, that doesn't properly escape stuff for me, is a hard stop. Trying to sanitize string input manually is like relying on the pull out method; eventually it's gonna get you.

bvn4nwqk

bvn4nwqk2#

I just wanted to say that _ (underscore) also needs to be escaped.

select * from Products where SomeColumn like 'FD[_]%'

By the way, nothing wrong with parameterized queries, but sometimes you want to go to the SQL management console and quickly run a query to find something out.

vatpfxk5

vatpfxk53#

Not sure this is accurate.

% and . and other wildcards depending on the query, may also need escaping. where you are looking for a dot. This will fail

select * from xxxx where field like '%.%'

相关问题