[SqlServer] multiline strings escapen

Pagina: 1
Acties:

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Ik kom er net achter dat carriage return en line feed characters in een literal string ook ge-escaped horen te worden. Als je een backslash voor een new line zet, dan verdwijnt de new line.

De enige manier die ik heb kunnen vinden om regeleinden te escapen is met behulp van de char() functie.Het lijkt wat omslachtig.
SQL:
1
'Eerste regel' + CHAR(13) + CHAR(10) + 'Tweede regel'


Als ik met php, vb.net of de query analyzer een string met backslash+newline insert in een varchar, dan wordt er geen newline ge-insert.

Als ik een geparameteriseerde query in vb.net uitvoer met dezelfde backslash+newline, dan wordt er wel een backslash en newline ge-insert. Met de sql profiler kan ik niet zien dat die newline ge-escaped wordt.
SQL:
1
2
exec sp_executesql N'INSERT INTO MyTable (Name) VALUES (@Name)', N'@Name varchar(50)', @Name = 'Eerste regel\
Tweede regel'


Maar als ik dat sql statement uitvoer in de query analyzer, dan wordt er 'Eerste regelTweede regel' ge-insert. :?

Ik kan maar weinig informatie vinden over het escapen van strings in SqlServer, en al helemaal niets over die backslash+newline 'feature'. Weet iemand hier meer van?

| Toen / Nu


  • whoami
  • Registratie: December 2000
  • Laatst online: 07:24
Kan een VARCHAR wel multi-lines aan ? Moet je dan geen TEXT gebruiken ?

https://fgheysels.github.io/


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Nee hoor, dat is geen enkel probleem. Het werkt ook, behalve als er een backslash aan 't eind van een regel staat.

| Toen / Nu