STRING_ESCAPE (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed Instance

Versieht Sonderzeichen in Texten mit Escapezeichen und gibt Text mit Escapezeichen zurück. STRING_ESCAPE ist eine deterministische Funktion, die in SQL Server 2016 eingeführt wurde.

Transact-SQL-Syntaxkonventionen

Syntax

STRING_ESCAPE( text , type )  

Argumente

text
Ein nvarchar-Ausdruck, der das Objekt repräsentiert, das mit Escapezeichen versehen werden soll.

type
Versieht Regeln, die angewendet werden sollen, mit Escapezeichen. Der derzeit unterstützte Wert lautet 'json'.

Rückgabetypen

nvarchar(max)-Text mit Sonder- und Steuerzeichen, die mit Escapezeichen versehen sind. Derzeit kann STRING_ESCAPE nur die in der folgenden Tabelle aufgeführten Sonderzeichen im JSON-Format mit Escapezeichen versehen.

Sonderzeichen Codierte Sequenz
Anführungszeichen (") \"
Umgekehrter Schrägstrich (\) \\
Schrägstrich (/) \/
Rückschritt \b
Seitenvorschub \f
Zeilenwechsel \n
Wagenrücklauf \r
Horizontaler Tabulator \t
Steuerzeichen Codierte Sequenz
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Bemerkungen

Beispiele

A. Versehen von Text mit Escapezeichen entsprechend der JSON-Formatierungsregeln

Über die folgende Abfrage werden Sonderzeichen unter Verwendung von JSON-Regeln mit Escapezeichen versehen und mit Escapezeichen versehener Text zurückgegeben.

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

Hier ist das Resultset.

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

B. Formatieren eines JSON-Objekts

Über die folgende Abfrage wird aus Zahlen- und Zeichenfolgenvariablen JSON-Text erstellt und sämtliche Sonderzeichen im JSON-Format in Variablen mit Escapezeichen versehen.

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

Weitere Informationen