Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a: SQL Server 2016 (13.x) y versiones
posteriores Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
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 nvarcharque 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') );