Ada keuntungan lain menggunakan DECLARE @local_variable CURSOR
sintaks yang baru saya temukan.
Keuntungannya terjadi ketika satu prosedur tersimpan memanggil yang lain, dan kedua prosedur memiliki kursor terbuka pada saat yang sama. Jika DECLARE cursor_name CURSOR
digunakan untuk mendefinisikan kursor, dan kedua prosedur menggunakan nama_kursor yang sama, maka Anda mendapatkan
Sebaliknya, Jika DECLARE @local_variable CURSOR
digunakan untuk mendefinisikan kursor dalam prosedur tersimpan induk dan anak, lalu @local_variable
lokal untuk setiap prosedur dan tidak ada konflik. Bagi yang belum pernah menggunakan cara ini, berikut adalah contoh penggunaan @C
sebagai variabel lokal:
DECLARE @C AS CURSOR;
SET @C = CURSOR FOR SELECT ...;
OPEN @C;
FETCH NEXT FROM @C INTO ...;
...