Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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, отображаемые в следующих таблицах.
| Специальный знак | Закодированная последовательность |
|---|---|
Quotation mark (") |
\" |
Reverse solidus (\\) |
\\ |
Solidus (/) |
\/ |
Backspace |
\b |
Form feed |
\f |
New line |
\n |
Carriage return |
\r |
Horizontal tab |
\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') );