Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к: SQL Server 2016 (13.x) и более поздние версии
Azure SQL Database
Azure SQL Managed Instance
SQL Database в Microsoft Fabric
Экранирует специальные символы в тексте и возвращает текст с экранированными символами. STRING_ESCAPE — это детерминированная функция, впервые представленная в SQL Server 2016.
Соглашения о синтаксисе Transact-SQL
Синтаксис
STRING_ESCAPE( text , type )
Аргументы
text
Выражение nvarchar, представляющее объект, который должен быть экранирован.
type
Правила экранирования, которые будут применены. В настоящее время поддерживается значение 'json'.
Типы возвращаемых данных
Текст nvarchar(max) с экранированными специальными и управляющими символами. В настоящее время с помощью функции STRING_ESCAPE можно экранировать только специальные символы JSON, представленные в таблицах ниже.
| Специальный знак | Закодированная последовательность |
|---|---|
| Кавычки («») | \" |
| Обратная косая черта (\) | \\ |
| Солидус (/) | \/ |
| Backspace | \b |
| Подача страницы | \f |
| Новая строка | \n |
| Возврат каретки | \r |
| Горизонтальная табуляция | \t |
| Управляющий символ | Закодированная последовательность |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Замечания
Примеры
А. Экранирование текста согласно правилам форматирования JSON
Приведенный ниже запрос экранирует специальные символы с использованием правил JSON и возвращает экранированный текст.
SELECT STRING_ESCAPE('\ /
\\ " ', 'json') AS escapedText;
Вот результирующий набор.
escapedText
-------------------------------------------------------------
\\\t\/\n\\\\\t\"\t
B. Форматирование объекта JSON
Приведенный ниже запрос создает текст в формате JSON на основе числовых и строковых переменных, а затем экранирует все специальные символы JSON в переменных.
SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );