Como inserir uma quebra de linha em uma string SQL Server VARCHAR/NVARCHAR

Eu não vi nenhuma pergunta similar feita sobre este tópico, e tive que pesquisar isto para algo em que eu'estou trabalhando agora mesmo. Pensei em postar a resposta para o caso de alguém mais ter a mesma pergunta.

char(13) é CR. Para DOS-/Windows-style CRLF linebreaks, você quer char(13)+char(10), como:

'This is line 1.' + CHAR(13)+CHAR(10) + 'This is line 2.'
Comentários (7)
Solução

Encontrei a resposta aqui: http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

Basta concatenar a string e inserir um CHAR(13) onde você quer que sua linha se quebre.

Exemplo:

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

Isto imprime o seguinte:

Esta é a linha 1.
Esta é a linha 2.

Comentários (7)

Seguindo um Google...

Tirando o código do site:

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 pode ser feito através da substituição de um espaço reservado por CHAR(13).

Boa pergunta, nunca o fiz eu mesmo :)

Comentários (4)