Comment insérer un saut de ligne dans une chaîne VARCHAR/NVARCHAR de SQL Server

Je n&#8217ai pas vu de questions similaires posées sur ce sujet, et j&#8217ai dû faire des recherches pour un projet sur lequel je travaille actuellement. J'ai pensé poster la réponse au cas où quelqu'un d'autre aurait la même question.

char(13) est CR. Pour les sauts de ligne CRLF de style DOS/Windows, vous voulez char(13)+char(10), comme :

'This is line 1.' + CHAR(13)+CHAR(10) + 'This is line 2.'
Commentaires (7)
Solution

J'ai trouvé la réponse ici : http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

Il suffit de concaténer la chaîne et d'insérer un CHAR(13) à l'endroit où vous voulez votre saut de ligne.

Exemple :

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

Cela donne le résultat suivant :

C'est la ligne 1.
Voici la ligne 2.

Commentaires (7)

Suite à une recherche Google...

Je prends le code du site 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))

On dirait que cela peut être fait en remplaçant un placeholder par CHAR(13).

Bonne question, je ne l'ai jamais fait moi-même :)

Commentaires (4)