Валидация данных передаваемых в процедуру

Имеется сторонняя система, которая вызывает процедуру на SQL Server. Проблема в том, что данные могут содержать одинарную кавычку, что вызовет ошибку.

Имеется ли способ от этого защититься (валидировать), чтобы не получать ошибки?

Пример:

execute PRC @abc = '{"code": "500 Internal Server Error","status": "'Unable to complete the operation')"}'

Разумеется возвратит

Msg 102, Level 15, State 1, Line 1

Incorrect syntax near 'Unable'.

Ответы (1 шт):

Автор решения: Andrew Nikolaev

Просто перед передачей строки выполните функцию ЗАМЕНЫ одной одинарной кавычки на две одинарных кавычки.

Например @abc = ЗАМЕНИТЬ(@abc, "'", "''")

execute PRC @abc = '{"code": "500 Internal Server Error","status": "''Unable to complete the operation'')"}'
→ Ссылка