Dela via


STRING_ESCAPE (Transact-SQL)

Gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL DatabaseAzure SQL Managed Instance

Undflyr specialtecken i texter och returnerar text med undantagna tecken. STRING_ESCAPE är en deterministisk funktion som introducerades i SQL Server 2016.

Transact-SQL syntaxkonventioner

Syntax

STRING_ESCAPE( text , type )  

Arguments

text
Är ett nvarchar-uttryck som representerar det objekt som ska undantagas.

type
Undantag från regler som ska tillämpas. Värdet som stöds är 'json'för närvarande .

Returtyper

nvarchar(max) text med undantagna specialtecken och kontrolltecken. För närvarande kan STRING_ESCAPE bara undkomma JSON-specialtecken som visas i följande tabeller.

Specialtecken Kodad sekvens
Citattecken (") \"
Omvänd solidus (\) \\
Solidus (/) \/
Backstegstangent \b
Formulärfeed \f
Ny rad \n
Vagnretur \r
Horisontell tabb \t
Kontrolltecken Kodad sekvens
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Anmärkningar

Examples

A. Escape-text enligt JSON-formateringsreglerna

Följande fråga undflyr specialtecken med hjälp av JSON-regler och returnerar undantagen text.

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

Här är resultatet.

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

B. Formatera JSON-objekt

Följande fråga skapar JSON-text från tal- och strängvariabler och undflyr alla särskilda JSON-tecken i variabler.

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

Se även