Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Pętla na stole (bez użycia kursora), aby połączyć dane

Możesz łączyć bez pętli za pomocą czegoś takiego jak poniżej; po prostu dodaj własne zapytanie / złączenia itp., jeśli to konieczne:

DECLARE @s varchar(max) = ''

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

SELECT @s

(musisz upewnij się, że nie ma NULL jest tam)

ale nie rób tego!

Baza danych nie miejsce do budowania html; przede wszystkim otwiera cię ogromnie na luki XSRF. Zrobiłbym to w warstwie interfejsu użytkownika, odpowiednio wykorzystując funkcje kodowania HTML dostarczane przez dowolną platformę, z której korzystasz. Ślepe łączenie łańcuchów jako html jest prawie na równi ze ślepym łączeniem łańcuchów użytkownika w TSQL (zamiast używania parametrów); w najlepszym przypadku formatowanie zostanie przerwane (brak poprawnej obsługi < itp.) - w najgorszym przypadku narażasz użytkowników na bezpośrednie ryzyko ataku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj częstotliwości słów z wyszukiwania pełnotekstowego SQL Server

  2. Czy można połączyć wartości kolumn w ciąg znaków za pomocą CTE?

  3. Czy mogę utworzyć widok na moim serwerze bazy danych z innego serwera bazy danych?

  4. Procedura składowana z nazwą tabeli jako parametrem

  5. Usuń pojedynczy znak z pola varchar SQL Server 2008