Có một lợi thế khác khi sử dụng DECLARE @local_variable CURSOR
cú pháp mà tôi vừa khám phá.
Lợi thế xảy ra khi một thủ tục được lưu trữ gọi một thủ tục khác và cả hai thủ tục đều có con trỏ mở cùng một lúc. Nếu DECLARE cursor_name CURSOR
được sử dụng để xác định các con trỏ và cả hai thủ tục đều sử dụng cùng một tên_chỉ_lệnh, sau đó bạn nhận được
Mặt khác, If DECLARE @local_variable CURSOR
được sử dụng để xác định các con trỏ trong các thủ tục được lưu trữ mẹ và con, sau đó là @local_variable
là cục bộ cho mỗi thủ tục và không có xung đột. Đối với những người chưa sử dụng phương pháp này trước đây, đây là một ví dụ, sử dụng @C
dưới dạng biến cục bộ:
DECLARE @C AS CURSOR;
SET @C = CURSOR FOR SELECT ...;
OPEN @C;
FETCH NEXT FROM @C INTO ...;
...