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') );