Partager via


STRING_ESCAPE (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL SQL ManagedInstanceSQL database in Microsoft Fabric

Échappe les caractères spéciaux dans les textes et retourne le texte avec des caractères d’échappement. STRING_ESCAPE est une fonction déterministe introduite en premier dans SQL Server 2016.

Conventions de la syntaxe Transact-SQL

Syntaxe

STRING_ESCAPE( text , type )  

Arguments

texte

Expressionnvarchar représentant l’objet qui doit être échappé.

type

Règles d’échappement qui seront appliquées. La valeur prise en charge actuellement est 'json'.

Types de retour

Texte nvarchar(max) avec caractères de contrôle et spéciaux d’échappement.

Actuellement STRING_ESCAPE , il est possible d’échapper uniquement des caractères spéciaux JSON affichés dans les tableaux suivants.

Caractère spécial Séquence codée
Quotation mark (") \"
Reverse solidus (\\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \t
Caractère de contrôle Séquence codée
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Notes

Exemples

R. Échapper du texte selon les règles de mise en forme JSON

La requête suivante échappe les caractères spéciaux à l’aide des règles JSON et retourne le texte avec séquence d’échappement.

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

Voici le jeu de résultats.

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

B. Mettre en forme un objet JSON

La requête suivante crée un texte JSON à partir de variables numériques et de chaîne, et échappe les caractères JSON spéciaux dans les variables.

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