sql >> Database >  >> RDS >> Sqlserver

Loop op tafel (zonder de cursor te gebruiken) om gegevens samen te voegen

Je kunt samenvoegen zonder de lus via iets als hieronder; voeg zo nodig uw eigen zoekopdracht / joins enz. toe:

DECLARE @s varchar(max) = ''

SELECT @s = @s + '<br/><b>' + CONVERT(varchar(10), i.CreatedDate, 101) + '</b>' + ISNULL(i.Notes, '')
FROM @Items i

SELECT @s

(je moet zorg ervoor dat er geen NULL zijn zit erin)

maar doe dit niet!

De database is niet de plek om html te bouwen; niet in de laatste plaats, het opent je enorm op XSRF-kwetsbaarheden. Ik zou dit doen in de UI-laag, waarbij ik op de juiste manier gebruik maak van de html-coderingsfuncties die worden geboden door welk platform je ook gebruikt. Het blindelings samenvoegen van strings als html is vrijwel gelijk aan het blindelings samenvoegen van gebruikersstrings in TSQL (in plaats van parameters te gebruiken); in het beste geval zal de opmaak worden verpest (geen correcte afhandeling van < , enz.) - in het slechtste geval plaatst u uw gebruikers direct risico op aanvallen.



  1. Node Mysql kan geen query in de wachtrij plaatsen na het aanroepen van quit

  2. Manipuleer rijen met meerdere clausules in mysql

  3. Foreign key-beperkingen tijdens het dumpen van gegevens

  4. MySQL corrumpeert na elke herstart van de server