Khai báo và sử dụng Cursor
Trong các truy vấn T-SQL, như tại các Stored Procedure, ta có thể sử dụng các con trỏ CURSOR để duyệt qua dữ liệu. Ta hiểu CURSOR là một tập hợp kết quả truy vấn (các hàng), với CURSOR ta có thể duyệt qua từng hàng kết quả để thi hành những tác vụ phức tạp.
Ở một thời điểm, CURSOR có thể truy cập bởi một con trỏ đến một hàng của nó, bạn chỉ thể dịch chuyển con trỏ từ dòng này sang dòng khác.
SELECT id,name FROM Product DECLARE cursorProduct CURSOR FOR SELECT id, title FROM Product Open cursorProduct FETCH NEXT FROM cursorProduct INTO @id, @title WHILE @@FETCH_STATUS = 0 BEGIN PRINT ‘ID:’ + CAST(@id as nvarchar) PRINT ‘TITLE:’ @title FETCH NEXT FROM cursorProduct INTO @it, @title END CLOSE cursorProduct DEALLOCATE cursorProduct
Tóm tắt lại các câu lệnh
-Khai báo biến @id, @title để lưu nội dung đọc DECLARE @id int DECLARE @title nvarchar(200) DECLARE cursorProduct CURSOR FOR – khai báo con trỏ cursorProduct SELECT id, title FROM Product – dữ liệu trỏ tới OPEN cursorProduct – Mở con trỏ FETCH NEXT FROM cursorProduct – Đọc dòng đầu tiên INTO @id, @title WHILE @@FETCH_STATUS = 0 -vòng lặp WHILE khi đọc Cursor thành công BEGIN -In kết quả hoặc thực hiện bất kỳ truy vấn -nào dựa trên kết quả đọc được PRINT ‘ID:’ + CAST(@id as nvarchar) PRINT ‘TITLE:’ @title FETCH NEXT FROM cursorProduct – Đọc dòng tiếp INTO @id, @title END CLOSE cursorProduct – Đóng Cursor DEALLOCATE cursorProduct – Giải phóng tài nguyên