@@CURSOR_ROWS (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Ini mengembalikan jumlah baris yang memenuhi syarat yang saat ini berada di kursor terakhir yang dibuka pada koneksi. Untuk meningkatkan performa, SQL Server dapat mengisi keyset besar dan kursor statis secara asinkron. @@CURSOR_ROWS dapat dipanggil untuk menentukan bahwa jumlah baris yang memenuhi syarat untuk kursor diambil pada saat panggilan @@CURSOR_ROWS.

Konvensi sintaks transact-SQL

Sintaksis

@@CURSOR_ROWS  

Catatan

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

Jenis yang dikembalikan

Integer

Tampilkan Nilai

Nilai hasil Deskripsi
-m Kursor mengisi secara asinkron. Nilai yang dikembalikan (-m) adalah jumlah baris yang saat ini berada dalam set kunci.
-1 Kursor bersifat dinamis. Karena kursor dinamis mencerminkan semua perubahan, jumlah baris yang memenuhi syarat untuk kursor terus berubah. Kursor tidak selalu mengambil semua baris yang memenuhi syarat.
0 Tidak ada kursor yang dibuka, tidak ada baris yang memenuhi syarat untuk kursor terakhir yang dibuka, atau kursor yang terakhir dibuka ditutup atau dibatalkan alokasinya.
n Kursor terisi penuh. Nilai yang dikembalikan (n) adalah jumlah total baris dalam kursor.

Keterangan

@@CURSOR_ROWS mengembalikan angka negatif jika kursor terakhir dibuka secara asinkron. Keyset-driver atau kursor statis terbuka secara asinkron jika nilai untuk ambang kursor sp_configure melebihi 0, dan jumlah baris dalam kumpulan hasil kursor melebihi ambang kursor.

Contoh

Contoh ini pertama kali mendeklarasikan kursor, lalu menggunakan SELECT untuk menampilkan nilai @@CURSOR_ROWS. Pengaturan memiliki nilai 0 sebelum kursor terbuka lalu memiliki nilai -1, untuk menunjukkan bahwa set kunci kursor mengisi secara asinkron.

USE AdventureWorks2022;  
GO  
SELECT @@CURSOR_ROWS;  
DECLARE Name_Cursor CURSOR FOR  
SELECT LastName ,@@CURSOR_ROWS FROM Person.Person;  
OPEN Name_Cursor;  
FETCH NEXT FROM Name_Cursor;  
SELECT @@CURSOR_ROWS;  
CLOSE Name_Cursor;  
DEALLOCATE Name_Cursor;  
GO             

Berikut adalah tataan hasilnya.

-----------
0  
LastName
---------------
Sanchez
-----------
-1

Baca juga

Fungsi Kursor (Transact-SQL)
BUKA (Transact-SQL)