Cómo insertar un salto de línea en una cadena VARCHAR/NVARCHAR de SQL Server

No vi ninguna pregunta similar sobre este tema, y tuve que investigar esto para algo en lo que estoy trabajando ahora. Pensé que iba a publicar la respuesta por si alguien más tenía la misma pregunta.

char(13) es CR. Para los saltos de línea CRLF al estilo de DOS/Windows, se quiere char(13)+char(10), como:

'This is line 1.' + CHAR(13)+CHAR(10) + 'This is line 2.'
Comentarios (7)
Solución

He encontrado la respuesta aquí: http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

Solo tienes que concatenar la cadena e insertar un CHAR(13) donde quieras tu salto de línea.

Ejemplo:

DECLARE @text NVARCHAR(100)
SET @text = 'This is line 1.' + CHAR(13) + 'This is line 2.'
SELECT @text

Esto imprime lo siguiente:

Esta es la línea 1.
Esta es la línea 2.

Comentarios (7)

Tras un Google...

Tomando el código de la página web:

CREATE TABLE CRLF
    (
        col1 VARCHAR(1000)
    )

INSERT CRLF SELECT 'The quick brown@'
INSERT CRLF SELECT 'fox @jumped'
INSERT CRLF SELECT '@over the '
INSERT CRLF SELECT 'log@'

SELECT col1 FROM CRLF

Returns:

col1
-----------------
The quick brown@
fox @jumped
@over the
log@

(4 row(s) affected)

UPDATE CRLF
SET col1 = REPLACE(col1, '@', CHAR(13))

Parece que se puede hacer sustituyendo un marcador de posición por CHAR(13)

Buena pregunta, nunca lo he hecho :)

Comentarios (4)