STRING_ESCAPE (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di Azure Istanza 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 relative alla sintassi Transact-SQL

Sintassi

STRING_ESCAPE( text , type )  

Argomenti

Testo
Espressione nvarchar che 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;  

Il set di risultati è il seguente.

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') );  

Vedi anche