STRING_ESCAPE (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed Instance

Aplica caracteres de escape a caracteres especiales en textos y devuelve texto con caracteres de escape. STRING_ESCAPE es una función determinista, introducida en SQL Server 2016.

Convenciones de sintaxis de Transact-SQL

Sintaxis

STRING_ESCAPE( text , type )  

Argumentos

text
Es una expresiónnvarchar que representa el objeto que se debe escapar.

type
Reglas de escape que se aplicarán. Actualmente el valor admitido es 'json'.

Tipos de valor devuelto

Texto nvarchar(max) con caracteres especiales y de control de escape. Actualmente STRING_ESCAPE solo puede aplicar caracteres de escape a los caracteres especiales de JSON que se muestran en las tablas siguientes.

Carácter especial Secuencia codificada
Comillas (") \"
Barra inclinada inversa (\) \\
Barra oblicua (/) \/
Retroceso \b
Avance de página \f
Nueva línea \n
Retorno de carro \r
Tabulación horizontal \t
Carácter de control Secuencia codificada
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Observaciones

Ejemplos

A. Aplicar carácter de escape a texto según las reglas de formato de JSON

En esta consulta se aplican caracteres de escape a caracteres especiales mediante las reglas de JSON y se devuelve texto de escape.

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

El conjunto de resultados es el siguiente:

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

B. Aplicar formato a objeto de JSON

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.

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

Consulte también