STRING_ESCAPE (Transact-SQL)STRING_ESCAPE (Transact-SQL)

Se aplica a:Applies to:síSQL Server 2016 (13.x)SQL Server 2016 (13.x)yesSQL Server 2016 (13.x)SQL Server 2016 (13.x)y versiones posteriores SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database SíInstancia administrada de Azure SQLAzure SQL Managed InstanceYesInstancia administrada de Azure SQLAzure SQL Managed Instance?Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse AnalyticsSe aplica a:Applies to: síSQL Server 2016 (13.x)SQL Server 2016 (13.x)yesSQL Server 2016 (13.x)SQL Server 2016 (13.x) and later SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database SíInstancia administrada de Azure SQLAzure SQL Managed InstanceYesInstancia administrada de Azure SQLAzure SQL Managed Instance ?Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics

Aplica caracteres de escape a caracteres especiales en textos y devuelve texto con caracteres de escape.Escapes special characters in texts and returns text with escaped characters. STRING_ESCAPE es una función determinista, introducida en SQL Server 2016.STRING_ESCAPE is a deterministic function, introduced in SQL Server 2016.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

STRING_ESCAPE( text , type )  

ArgumentosArguments

texttext
Es una expresiónnvarchar que representa el objeto que se debe escapar.Is a nvarcharexpression expression representing the object that should be escaped.

typetype
Reglas de escape que se aplicarán.Escaping rules that will be applied. Actualmente el valor admitido es 'json'.Currently the value supported is 'json'.

Tipos de valor devueltoReturn Types

Texto nvarchar(max) con caracteres especiales y de control de escape.nvarchar(max) text with escaped special and control characters. Actualmente STRING_ESCAPE solo puede aplicar caracteres de escape a los caracteres especiales de JSON que se muestran en las tablas siguientes.Currently STRING_ESCAPE can only escape JSON special characters shown in the following tables.

Carácter especialSpecial character Secuencia codificadaEncoded sequence
Comillas (")Quotation mark (") \"\"
Barra oblicua invertida (\)Reverse solidus (\) \\
Barra oblicua (/)Solidus (/) \/
RetrocesoBackspace \b\b
Avance de páginaForm feed \f\f
Línea nuevaNew line \n\n
Retorno de carroCarriage return \r\r
Tabulación horizontalHorizontal tab \t\t
Carácter de controlControl character Secuencia codificadaEncoded sequence
CHAR(0)CHAR(0) \u0000\u0000
CHAR(1)CHAR(1) \u0001\u0001
... ...
CHAR(31)CHAR(31) \u001f\u001f

ObservacionesRemarks

EjemplosExamples

A.A. Aplicar carácter de escape a texto según las reglas de formato de JSONEscape text according to the JSON formatting rules

En esta consulta se aplican caracteres de escape a caracteres especiales mediante las reglas de JSON y se devuelve texto de escape.The following query escapes special characters using JSON rules and returns escaped text.

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

El conjunto de resultados es el siguiente:Here is the result set.

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

B.B. Aplicar formato a objeto de JSONFormat JSON object

En esta consulta se crea texto de JSON a partir de variables de cadena y número, y se aplica un carácter de escape a cualquier carácter especial de JSON en variables.The following query creates JSON text from number and string variables, and escapes any special JSON character in variables.

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

Consulte tambiénSee Also