Подтвердить что ты не робот

Символы, которые должны быть экранированы в Tsql

Я искал список специальных символов, которые должны быть экранированы в ms sql-сервере, но не смогли найти один и большинство ответов, которые я видел для подобных вопросов, которые рекомендуется использовать параметризованные запросы.. которые я уже делаю, но рамки Я использую не для меня.

Таким образом, я думал, что дам кучу этих попыток и посмотрю, какой из них не удается.... и я попробовал простой запрос

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

в таком запросе я пробовал почти все персонажи, которые я мог найти на своей клавиатуре, и все они, похоже, работают... кроме того, что Сингл цитирует.. тот не удается.

Таким образом, я хочу знать список недопустимых символов и должен быть экранирован в ms sql server - tsql и не хочу рисковать просто сбежать от одной кавычки и оставить остальное, что может вызвать проблемы.

Цените свою помощь

4b9b3361

Ответ 1

Единственный символ, который нуждается в экранировании в строке, - это одиночная кавычка (которая выполняется с двумя одинарными кавычками вместе). В противном случае строка и t-sql больше не будут беспокоиться об этом.

Если вы используете инструкцию LIKE, см. эту тему SOA Побег строки в SQL Server, чтобы ее можно было использовать в выражении LIKE

Как и в любом случае, любая инфраструктура, которая не позволяет мне использовать параметры, которые мне не помогают, - это трудная остановка. Попытка санировать ввод строки вручную - это как полагаться на метод вытаскивания; в конце концов он вас доставит.

Ответ 2

Не уверен, что это точно.

% и . и другие подстановочные знаки в зависимости от запроса могут также потребоваться экранирование. где вы ищете точку. Это не сработает

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

Ответ 3

Я просто хотел сказать, что _ (подчеркивание) также необходимо экранировать.

выберите * из продуктов, где SomeColumn как "FD [_]% '

Кстати, ничего плохого в параметризованных запросах, но иногда вы хотите перейти на консоль управления SQL и быстро запустить запрос, чтобы найти что-то.