sql >> Database teknologi >  >> RDS >> Sqlserver

Loop på bordet (uden at bruge markøren) for at sammensætte data

Du kan sammenkæde uden løkken via noget som nedenfor; bare tilføj din egen forespørgsel / joins osv. efter behov:

DECLARE @s varchar(max) = ''

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

SELECT @s

(du skal sørg for, at der ikke er nogen NULL er derinde)

men gør ikke dette!

Databasen er ikke stedet at bygge html; ikke mindst åbner det dig enormt til XSRF-sårbarheder. Jeg ville gøre dette i UI-laget ved at gøre passende brug af de html-kodningsfunktioner, der leveres af den platform, du bruger. Blindt sammenkædning af strenge som html er stort set på niveau med blindt sammenkædning af brugerstrenge til TSQL (i stedet for at bruge parametre); i bedste fald vil formateringen være borket (ingen korrekt håndtering af <). , etc) - i værste fald placerer du dine brugere i direkte risiko for angreb.



  1. JDBC-forbindelse til Oracle Clustered

  2. Brug tabelalias i en anden forespørgsel til at krydse et træ

  3. fejl under brug af mysql_real_escape_string()

  4. DevOps-løsninger til automatisering af databaseudvikling