SỬ DỤNG CON TRỎ CƠ SỞ DỮ LIỆU TRONG LẬP TRÌNH T-SQL
chuc1803@gmail.com
Giới thiệu về con trỏ CSDL
Con trỏ (Cursor): Là một đối tượng CSDL, được sử dụng để thao tác với từng dòng dữ liệu.
Khai báo con trỏ: DECLARE <Cursor_name> CURSOR
Mở con trỏ: OPEN <Cursor_name>
Nhận về các bản ghi: FETCH <Cursor_name>
Đóng con trỏ: CLOSE <Cursor_name>
Xoá các tham chiếu tới con trỏ: DEALLOCATE <Cursor_name>
Duyệt con trỏ
FETCH [NEXT| PRIOR | FIRST |LAST| ABSOLUTE n]
FROM <Cursor_name> [INTO <Var_list>]
FETCH FIRST: Truy xuất hàng đầu tiên.
FETCH NEXT: Truy xuất hàng tiếp theo
FETCH PRIOR: Truy xuất hàng trước hàng hiện tại.
FETCH LAST: Truy xuất hàng cuối cùng.
FETCH ABSOLUTE n: n là một số nguyên dương, truy xuất hàng n trong con trỏ.
@@FETCH _STATUS: Trả về một số nguyên cho biết kết quả của lệnh truy xuất cuối cùng của con trỏ.
@@CURSOR_ROWS: Trả về tổng số hàng hiện tại trong con trỏ đang mở.
Ví dụ sử dụng Cursor
Ví dụ 1: Sử dụng con trỏ để duyệt qua các mặt hàng trong bảng ITEMS(Ino, Iname, Price, Quantity)

Ví dụ 2: Có bảng TRANSACTIONS chứa các giao dịch rút tiền như sau:

Yêu cầu: In ra số tài khoản, số lần rút và tổng tiền rút của tất cả các tài khoản có số tiền rút >=300 trong một tháng và năm xác định trước.
