STRING_ESCAPE (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure 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
Ist ein nvarchar-Ausdruck, der das Objekt darstellt, das escaped sein 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 sehen Sie das Ergebnis.
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') );