Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Vòng lặp trên bảng (Không sử dụng con trỏ) để nối dữ liệu

Bạn có thể nối mà không cần vòng lặp thông qua một cái gì đó như dưới đây; chỉ cần thêm truy vấn / tham gia của riêng bạn, v.v. nếu cần:

DECLARE @s varchar(max) = ''

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

SELECT @s

(bạn phải đảm bảo không có NULL s trong đó)

nhưng đừng làm điều này!

Cơ sở dữ liệu không nơi xây dựng html; không kém phần quan trọng, nó mở ra cho bạn rất nhiều tới các lỗ hổng XSRF. Tôi sẽ làm điều này trong lớp giao diện người dùng, sử dụng thích hợp các chức năng mã hóa html được cung cấp bởi bất kỳ nền tảng nào bạn đang sử dụng. Việc nối các chuỗi một cách mù quáng như html khá ngang bằng với việc nối các chuỗi người dùng một cách mù quáng vào TSQL (thay vì sử dụng các tham số); tốt nhất là định dạng sẽ bị khóa (không xử lý đúng < , v.v.) - tệ nhất là bạn đặt người dùng của mình vào nguy cơ bị tấn công trực tiếp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chức năng tách trong SQL Server 2008

  2. Làm cách nào để tách các thẻ HTML khỏi một chuỗi trong SQL Server?

  3. T-SQL Bỏ qua Thủ tục Đã Lưu trữ

  4. Đạt đến giới hạn tham số 2100 (SQL Server) khi sử dụng Chứa ()

  5. Có bao nhiêu ký tự trong varchar (max)?