Compartir vía


STRING_ESCAPE (Transact-SQL)

Aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceSQL 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 por primera vez en SQL Server 2016.

Convenciones de sintaxis de Transact-SQL

Sintaxis

STRING_ESCAPE( text , type )  

Argumentos

text

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 retorno

Texto nvarchar(max) con caracteres especiales y de control de escape.

Actualmente STRING_ESCAPE solo puede escapar caracteres especiales JSON que se muestran en las tablas siguientes.

Carácter especial Secuencia codificada
Quotation mark (") \"
Reverse solidus (\\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \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') );