Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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') );