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.