Comparteix a través de


STRING_ESCAPE (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure 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ón nvarchar 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;  

Este es el conjunto de resultados.

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