simbolos saco saca poner pone invertida inversa inclinada doble diagonales como barra sql sql-server tsql

sql - saco - doble barra invertida



Cómo escapar de la barra diagonal en el servidor SQL (3)

DECLARE @Query nvarchar(max) SET @Query =''DECLARE @Test nvarchar(max) SELECT @Test = ''''/a''/b''/c'''' SELECT @Test PRINT @Query exec sp_executesql @Query

Estoy tratando de obtener una salida como / a / b / c. El error anterior es probablemente porque no puedo escapar del carácter /.


De hecho, hay un lugar donde las barras diagonales inversas necesitan ser escapadas (o al menos tratadas especialmente) en SQL Server.

Cuando una barra invertida precede inmediatamente a una nueva línea en un literal de cadena, tanto la barra invertida como la nueva se eliminan.

PRINT ''Foo/ Bar''

Devoluciones

FooBar

El artículo aquí indica que esta es una característica de las herramientas cliente en lugar del propio TSQL, pero no creo que este sea el caso, ya que el siguiente código tiene el mismo resultado.

DECLARE @X VARCHAR(100) = ''PRINT ''''Foo/' + CHAR(13) + CHAR(10) + ''Bar'''' '' EXEC(@X)

Si realmente necesita una cadena literal con una barra invertida seguida de retornos de carro, puede duplicarlos.

PRINT ''Foo// Bar''


No necesita escapar de las barras invertidas (solo las comillas simples internas):

DECLARE @Query nvarchar(max) SET @Query =''DECLARE @Test nvarchar(max) SELECT @Test = ''''/a/b/c'''' SELECT @Test'' PRINT @Query exec sp_executesql @Query


Si quieres probar prueba este código:

seleccione ''/ a / b / c''

No hay necesidad de escapar del carácter de barra invertida. Pero el problema de la barra invertida más el carácter de nueva línea es un problema y el motor del Servidor Sql simplemente lo recorta.

Si necesita poner una comilla simple en la cadena, debe duplicar el carácter de comilla:

seleccione ''prueba:'' ''entre comillas'' ''- ok''

Espero haberte ayudado de alguna manera.