Delen via


STRING_ESCAPE (Transact-SQL)

Van toepassing op: SQL Server 2016 (13.x) en latere versies van Azure SQL DatabaseAzure SQL Managed Instance

Escapet speciale tekens in teksten en retourneert tekst met escape-tekens. STRING_ESCAPE is een deterministische functie, geïntroduceerd in SQL Server 2016.

Transact-SQL syntaxis-conventies

Syntaxis

STRING_ESCAPE( text , type )  

Arguments

tekst
Is een nvarchar-expressie die het object vertegenwoordigt dat moet worden ontsnapt.

type
Ontsnappingsregels die worden toegepast. Momenteel is 'json'de ondersteunde waarde.

Retourtypen

nvarchar(max) tekst met escape-speciale tekens en besturingstekens. Momenteel kan STRING_ESCAPE alleen speciale JSON-tekens escapen die worden weergegeven in de volgende tabellen.

Speciaal teken Gecodeerde reeks
Aanhalingsteken (") \"
Omgekeerde solidus (\) \\
Solidus (/) \/
Backspatie \b
Formulierfeed \f
Nieuwe regel \n
Regelterugloop \r
Horizontaal tabblad \t
Besturingselementteken Gecodeerde reeks
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Opmerkingen

Voorbeelden

Eén. Escape-tekst volgens de JSON-opmaakregels

De volgende query escapet speciale tekens met behulp van JSON-regels en retourneert escape-tekst.

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

Hier is het resultatenoverzicht.

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

B. JSON-object opmaken

Met de volgende query wordt JSON-tekst gemaakt op basis van getal- en tekenreeksvariabelen en wordt een speciaal JSON-teken in variabelen ontsnapt.

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

Zie ook