STRING_ESCAPE (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive Azure SQL DatabaseIstanza gestita di SQL di Azure

Aggiunge un carattere di escape prima di caratteri speciali nei testi e restituisce testo con caratteri preceduti da un carattere di escape. STRING_ESCAPE è una funzione deterministica introdotta in SQL Server 2016.

Convenzioni della sintassi Transact-SQL

Sintassi

STRING_ESCAPE( text , type )  

Argomenti

text
Espressione nvarcharche rappresenta l'oggetto di cui eseguire l'escape.

type
Regole di escape che verranno applicate. Il valore supportato è attualmente 'json'.

Tipi restituiti

Testo nvarchar (max) con caratteri speciali e di controllo preceduti da un carattere di escape. Attualmente STRING_ESCAPE fa precedere un carattere di escape solo ai caratteri speciali JSON illustrati nelle tabelle seguenti.

Carattere speciale Sequenza codificata
Virgoletta (") \"
Barra rovesciata (\) \\
Barra (/) \/
Backspace \b
Avanzamento carta \f
Nuova riga \n
Ritorno a capo \r
Tabulazione orizzontale \t
Carattere di controllo Sequenza codificata
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Osservazioni

Esempi

R. Aggiungere un carattere di escape al testo in base alle regole di formattazione JSON

La query seguente fa precedere da un carattere di escape i caratteri speciali mediante regole JSON e restituisce testo preceduto da un carattere di escape.

SELECT STRING_ESCAPE('\   /  
\\    "     ', 'json') AS escapedText;  

Questo è il set di risultati.

escapedText  
-------------------------------------------------------------  
\\\t\/\n\\\\\t\"\t

B. Formattare un oggetto JSON

La query seguente crea testo JSON da variabili di stringa e numero e aggiunge un carattere di escape prima di qualsiasi carattere speciale JSON nelle variabili.

SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
    17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );  

Vedere anche