Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Loop on table (Tanpa menggunakan kursor) untuk menggabungkan data

Anda dapat menggabungkan tanpa loop melalui sesuatu seperti di bawah ini; cukup tambahkan kueri Anda sendiri/gabung dll seperlunya:

DECLARE @s varchar(max) = ''

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

SELECT @s

(Anda harus pastikan tidak ada NULL ada di sana)

tapi jangan lakukan ini!

Basis datanya bukan tempat membuat html; paling tidak, ini membuka Anda sangat terhadap kerentanan XSRF. Saya akan melakukan ini di lapisan UI, memanfaatkan dengan tepat fungsi penyandian html yang disediakan oleh platform mana pun yang Anda gunakan. Menggabungkan string secara membabi buta sebagai html cukup setara dengan menggabungkan string pengguna secara membabi buta ke dalam TSQL (alih-alih menggunakan parameter); paling-paling pemformatan akan dibor (tidak ada penanganan < . yang benar , dll) - paling buruk Anda menempatkan pengguna Anda pada risiko serangan langsung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat memotong tabel karena direferensikan oleh batasan FOREIGN KEY?

  2. Prosedur Tersimpan Pengujian Unit SQL

  3. Cara lebih baik menduplikasi satu set data di SQL Server

  4. Bagaimana cara melewatkan parameter nilai tabel ke prosedur tersimpan dari .net code

  5. Cara elegan untuk menghapus baris yang tidak dirujuk oleh tabel lain