Cursor là gì

*

Nếu lý giải một phương pháp ngắn thêm gọn thì cursor giống như nhỏng recordset xuất xắc dataphối trong programming. Nghĩa là ta select một trong những data vào memory tiếp nối hoàn toàn có thể lần lượt thao tác làm việc với từng record bằng cách Move sầu Next…

Có 3 các loại cursors là Transact- Squốc lộ Cursors, API Cursors với Client Cursors. Trong số đó Transact-Squốc lộ và API thuộc các loại Server Cursors tức thị cursors được load lên và làm việc bên phía hệ thống. Trong khuôn khổ bài học kinh nghiệm này ta chỉ nghiên cứu và phân tích Transact-SQL cursors.

Bạn đang xem: Cursor là gì

Đang xem: Cursor là gì

Transact-SQL cursors được tạo thành bên trên VPS bằng những câu lệnh Transact-SQL với đa phần được dùng vào stored procedures và triggers. Trước hết hãy coi sang 1 ví dụ về cursor:

DECLARE au_fname varchar(20) DECLARE Employee_Cursor CURSOR FOR SELECT LastName, FirstName FROM Northwind.dbo.Employees OPEN Employee_Cursor FETCH NEXT FROM Employee_Cursor INTO au_fname END CLOSE Employee_Cursor DEALLOCATE Employee_Cursor Trong ví dụ ngơi nghỉ trên ta đã select LastName với FirstName tự Employees table của Northwind database và load vào Employee_Cursor sau đó theo lần lượt in tên của các employee ra screen. Ðể thao tác làm việc với 1 cursor ta phải theo công việc sau:

1. Dùng câu lệnh DECLARE CURSOR nhằm knhì báo một cursor. Khi knhì báo ta cũng bắt buộc cho biết thêm câu lệnh SELECTsẽ được thực hiện để đưa data.

2. Dùng câu lệnh OPEN để đưa data lên memory (populate data). Ðây đó là thời điểm tiến hành câu lệnh SELECT vốn được knhị báo nghỉ ngơi trên.

3. Dùng câu lệnh FETCH để lấy từng hàng data từ bỏ record mix. Cụ thể là ta đề xuất call câu lệnh FETCH nhiều lần. FETCH giống như như lệnh Move vào ADO recordmix ở vị trí nó hoàn toàn có thể di chuyển tới lui bởi câu lệnh FETCH FIRST, FETCH NEXT, FETCH PRIOR, FETCH LAST, FETCH ABSOLUTE n, FETCH RELATIVE n tuy nhiên khác ở đoạn là nó lấy data bỏ vô vào variable (FETCH…FROM…INTO variable_name). Đôi khi ta FETCH data trước kế tiếp loop cho tới record cuối của Cursor bằng vòng lặp WHILE bằng cách soát sổ global variable FETCH_STATUS (=0 tức là thành công).

Xem thêm: Tìm Hiểu Về Khái Niệm Webhook Là Gì ? Webhook Là Gì

4. Lúc ta viếng thăm từng record ta rất có thể UPDATE tuyệt DELETE tùy theo nhu cầu (vào thí dụ này chỉ dùng lệnh PRINT)

5. Dùng câu lệnh CLOSE nhằm đóng cursor. Một số tài ngulặng (memory resource) sẽ được giải phóng mà lại cursor vẫn còn được knhì báo và có thể OPEN trở về.

6. Dùng câu lệnh DEALLOCATE để pchờ thích trọn vẹn những tài nguim giành cho cursor (kể cả thương hiệu của cursor).

Xem thêm: 13 Món Ăn Đặc Sản Bạc Liêu Là Gì, Đặc Sản Bạc Liêu, Ăn Gì Ở Bạc Liêu

Lưu ý là trong ví dụ ngơi nghỉ bên trên trước khi sử dụng Cursor ta cũng declare một số trong những variable (au_lname) nhằm chứa các cực hiếm rước được trường đoản cú cursor. Quý Khách có thể sử dụng Query Analyzer để chạy demo ví dụ bên trên.


Chuyên mục: Tổng Hợp