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

SQL Server sử dụng EXEC / sp_executesql hay chỉ sql thuần túy trong thủ tục được lưu trữ?

Không có lý do gì để sử dụng SQL động tại đây. Khi bạn làm cần sử dụng SQL động, bạn nên xem xét sp_executesql ưu tiên cao hơn EXEC() . Có nhiều lý do, bao gồm:

  1. sp_executesql có nhiều khả năng sử dụng lại các kế hoạch truy vấn hơn (xem SQL động - EXEC (@SQL) so với EXEC SP_EXECUTESQL (@SQL) );

  2. việc chuyển các tham số được gõ mạnh vào sp_executesql sẽ dễ dàng hơn nhiều (ngăn chặn việc chèn SQL tốt hơn việc nối một chuỗi); và,

  3. bạn cũng có thể lấy các biến từ trong phạm vi SQL động trở lại phạm vi gọi, ví dụ:

Đó không phải là một ví dụ rất hữu ích, nhưng nó là một vấn đề phổ biến khi thực thi các chuỗi động. Nhưng quan trọng hơn, bạn chỉ nên xem xét SQL động khi bạn phải làm như vậy, không phải là phương án đầu tiên.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các hàm TRIM, LTRIM và RTRIM của SQL Server

  2. Thiết lập Liquibase với MS-SQL Server

  3. Tìm ngày gần nhất trong SQL Server

  4. Tham gia một bàn với chính nó

  5. Làm cách nào để kết nối với SQL Server 2008 bằng qt?