CURSOR_STATUS (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Untuk parameter tertentu, CURSOR_STATUS menunjukkan apakah deklarasi kursor telah mengembalikan kursor dan tataan hasil atau tidak.

Konvensi sintaks transact-SQL

Sintaksis

CURSOR_STATUS   
     (  
          { 'local' , 'cursor_name' }   
          | { 'global' , 'cursor_name' }   
          | { 'variable' , 'cursor_variable' }   
     )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

'lokal'
Menentukan konstanta yang menunjukkan bahwa sumber kursor adalah nama kursor lokal.

'cursor_name'
Nama kursor. Nama kursor harus sesuai dengan aturan pengidentifikasi database.

'global'
Menentukan konstanta yang menunjukkan bahwa sumber kursor adalah nama kursor global.

'variabel'
Menentukan konstanta yang menunjukkan bahwa sumber kursor adalah variabel lokal.

'cursor_variable'
Nama variabel kursor. Variabel kursor harus ditentukan menggunakan jenis data kursor .

Jenis yang dikembalikan

smallint

Nilai hasil Nama kursor Variabel kursor
1 Kumpulan hasil kursor memiliki setidaknya satu baris.

Untuk kursor yang tidak sensitif dan set kunci, kumpulan hasil memiliki setidaknya satu baris.

Untuk kursor dinamis, kumpulan hasil dapat memiliki nol, satu, atau beberapa baris.
Kursor yang dialokasikan untuk variabel ini terbuka.

Untuk kursor yang tidak sensitif dan set kunci, kumpulan hasil memiliki setidaknya satu baris.

Untuk kursor dinamis, kumpulan hasil dapat memiliki nol, satu, atau beberapa baris.
0 Kumpulan hasil kursor kosong.* Kursor yang dialokasikan untuk variabel ini terbuka, tetapi tataan hasilnya pasti kosong.*
-1 Kursor ditutup. Kursor yang dialokasikan untuk variabel ini ditutup.
-2 Tidak berlaku. Memiliki salah satu kemungkinan berikut:

Prosedur yang sebelumnya disebut tidak menetapkan kursor ke variabel OUTPUT ini.

Prosedur yang ditetapkan sebelumnya menetapkan kursor ke variabel OUTPUT ini, tetapi kursor dalam keadaan tertutup ketika prosedur selesai. Oleh karena itu, kursor dibatalkan alokasinya, dan tidak dikembalikan ke prosedur panggilan.

Tidak ada kursor yang ditetapkan ke variabel kursor yang dideklarasikan.
-3 Kursor dengan nama yang ditentukan tidak ada. Variabel kursor dengan nama yang ditentukan tidak ada, atau jika ada, tidak ada kursor yang belum dialokasikan untuk itu.

*Kursor dinamis tidak pernah mengembalikan hasil ini.

Contoh

Contoh ini menggunakan CURSOR_STATUS fungsi untuk memperlihatkan status kursor, setelah deklarasi, setelah dibuka, dan setelah ditutup.

CREATE TABLE #TMP  
(  
   ii INT  
)  
GO  
  
INSERT INTO #TMP(ii) VALUES(1)  
INSERT INTO #TMP(ii) VALUES(2)  
INSERT INTO #TMP(ii) VALUES(3)  
  
GO  
  
--Create a cursor.  
DECLARE cur CURSOR  
FOR SELECT * FROM #TMP  
  
--Display the status of the cursor before and after opening  
--closing the cursor.  
  
SELECT CURSOR_STATUS('global','cur') AS 'After declare'  
OPEN cur  
SELECT CURSOR_STATUS('global','cur') AS 'After Open'  
CLOSE cur  
SELECT CURSOR_STATUS('global','cur') AS 'After Close'  
  
--Remove the cursor.  
DEALLOCATE cur  
  
--Drop the table.  
DROP TABLE #TMP  
  

Berikut adalah hasil yang ditetapkan.

After declare
---------------
-1  
  
After Open
----------
1  
  
After Close
-----------
-1

Baca juga

Fungsi Kursor (Transact-SQL)
Tipe Data (Transact-SQL)