Có 3 loại Cursor:
- STATIC : có thuộc tính READ ONLY, do đó không thể cập nhật các bảng nền thông qua cursor này. Khi tạo Cursor Static, dữ liệu từ các bảng gốc sẽ được copy sang một bảng tạm trong CSDL tempdb. Do đó, Nếu các table nguồn của Cursor bị thay đổi dữ liệu thì các dữ liệu không xuất hiện trên Cursor.
Server: Msg 16929, Level 16, State 1, Procedure SC_DIENSBD, Line 14
The cursor is READ ONLY. The statement has been terminated
- DYNAMIC: Cho phép cập nhật dữ liệu trên các table nguồn (dùng mệnh đề WHERE CURRENT OF <tênCursor> trong các phát biểu UPDATE or DELETE), và tự động hiển thị tất cả những thay đổi từ table nguồn. Tuy nhiên, dữ liệu và thứ tự của các mẫu tin trong tập mẫu tin có thể bị thay đổi.
- KEYSET : Giống như cursor Dynamic. Nhưng nó chỉ được tạo khi bảng nguồn có khai báo khóa, nếu không thì SQL tự động chuyển sang loại STATIC. Khi tạo Cursor KEYSET, tập các khóa của bảng nguồn được lưu trên một table của CSDL tempdb. Do đó, việc xóa mẫu tin hoặc thay đổi giá trị khóa trên các bảng nguồn không thông qua Cursor sẽ không phản hồi trên tập mẫu tin.
Cursor kiểu STATIC, KEYSET và DYNAMIC mặc định dùng phương thức SCROLL. TYPE_WARNING : Gởi thông báo chú ý về client nếu Cursor thực hiện chuyển đổi ngầm định từ kiểu yêu cầu sang một kiểu khác.
» Tin mới nhất:
» Các tin khác: