tailieunhanh - Những thói quen tốt khi viết câu lệnh T-SQL- P5

Tham khảo tài liệu 'những thói quen tốt khi viết câu lệnh t-sql- p5', công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | SalesOrderID @SalesOrderID IF @SalesOrderDetailID IS NOT NULL SET @WHERE @WHERE AND SalesOrderDetailID @SalesOrderDetailID IF @CarrierTrackingNumber IS NOT NULL SET @WHERE @WHERE AND CarrierTrackingNumber @CarrierTrackingNumber IF LEN @WHERE 0 SET @CMD @CMD WHERE RIGHT @WHERE LEN @WHERE - 3 EXEC sp executesql @CMD N @SalesOrderID int @SalesOrderDetailID int @CarrierTrackingNumber nvarchar 25 @SalesOrderID @SalesOrderID @SalesOrderDetailID @SalesOrderDetailID @CarrierTrackingNumber @CarrierTrackingNumber Tiếp theo chúng ta sẽ đi sâu vào chi tiết nhằm giúp bạn hiểu rõ phần động và phần thông số hóa của đoạn mã trên. SP này bắt đầu bằng việc gán biến @CMD vào câu lệnh SELECT không có mệnh đề WHERE. Tiếp theo ta gán biến @WHERE cho một chuỗi rỗng. Tiếp đó là bốn câu IF khác nhau. Ba câu IF đầu tiên kiểm tra xem mỗi tham số truyền vào có thỏa mãn điều kiện NOT NULL hay không. Nếu một tham số NOT NULL ta sẽ gắn điều kiện vào biến @WHERE đối với tham số ấy. Do ta đã kiểm tra và xác định tham số đó NOT NULL ta không cần thêm điều kiện IS NULL vào mệnh đề WHERE như đoạn code SP ban đầu ở phần trên. Thay vào đó tất cả những gì ta cần là thêm điều kiện TableColumn @PARM vào biến @WHERE. Câu If cuối cùng xác định xem biến @WHERE có thỏa mãn ít nhất một điều kiện hay không và nếu có thì nó sẽ nối biến @WHERE với biến @CMD. Lưu ý rằng biến @WHERE là phần động của đoạn code. Nhưng tôi không đặt phần text thực của tham số vào biến @WHERE thay vào đó chỉ đặt một tham chiếu tới các tham số trong điều kiện WHERE. Vì thế câu lệnh T-SQL động cơ bản chỉ bao gồm câu lệnh SELECT ban đầu và mệnh đề WHERE không còn cần điều kiện IS NULL để ràng buộc dữ liệu nữa. Cuối cùng tôi sử dụng SP sp_executesql để thực thi câu lệnh T-SQL động thông số hóa. Để thực .

TỪ KHÓA LIÊN QUAN