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

MS SQL Server - CURSOR tốt khi nào?

Thông thường chúng phải được tránh, nhưng tính năng này là có lý do và đôi khi phải sử dụng chúng. Tôi muốn nói rằng 90 +% con trỏ tôi đã thấy là không cần thiết. Nếu bạn đang sử dụng chúng cho các hoạt động CRUD, điều đó hầu như luôn có thể được làm lại theo kiểu dựa trên bộ. Tôi thường thấy mọi người sử dụng con trỏ cho việc này vì họ không biết cách sử dụng các phép nối trong cập nhật hoặc xóa hoặc họ có thể sử dụng một trạng thái chọn thay vì mệnh đề giá trị trong một chèn. Một cách sử dụng không cần thiết khác khi mọi người nghĩ rằng họ cần chúng để xử lý phức tạp hơn một chút mà thực sự có thể dễ dàng xử lý bằng một câu lệnh trường hợp.

Con trỏ đôi khi nhanh hơn để tính toán một cái gì đó như tổng số đang chạy.

Con trỏ cũng tiện dụng cho nhiều lần thực thi một proc được lưu trữ được thiết lập để chỉ xử lý một giá trị đầu vào tại một thời điểm. Tôi không sử dụng tính năng này để chạy các procs do người dùng lưu trữ (trừ khi tôi biết mình sẽ đánh một tập dữ liệu rất nhỏ) nhưng nó rất tiện dụng cho quản trị viên cơ sở dữ liệu khi cần chạy các procs hệ thống dựa trên nhiều bảng.

Nếu bạn đang tạo email trong SQl (không phải là nơi tốt nhất để làm điều đó, nhưng trong một số hệ thống đó là nơi họ làm điều đó) và không muốn toàn bộ khán giả của email nhìn thấy những người khác trong danh sách hoặc bạn muốn cá nhân hóa từng người. email với thông tin về người nhận địa chỉ, con trỏ là cách để thực hiện.

Con trỏ hoặc vòng lặp cũng có thể được sử dụng để xử lý hàng loạt bản ghi nếu quá trình chèn / cập nhật / xóa toàn bộ dựa trên bộ sẽ mất quá nhiều thời gian và khóa các bảng. Đây là một loại kết hợp giữa con trỏ và giải pháp dựa trên tập hợp và thường là giải pháp tốt nhất cho những thay đổi lớn trên hệ thống sản xuất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khắc phục “Lỗi tràn số học chuyển đổi int thành kiểu dữ liệu số” trong SQL Server

  2. Truy cập TimeZoneInfo từ SQL 2005 Server

  3. Ngày xây dựng từ năm và số tuần trong MSSQL

  4. Làm cách nào để ghi đầu ra câu lệnh SQL vào tệp CSV?

  5. Tạo quy tắc để hạn chế các ký tự đặc biệt trong bảng trong máy chủ sql