Bagikan melalui


@@CURSOR_ROWS (T-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Fungsi 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 @@CURSOR_ROWS panggilan.

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

int

Nilai hasil

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 terbuka, 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 sp_configure ambang kursor melebihi 0, dan jumlah baris dalam tataan 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   (No column name)   ROWSTAT
---------  -----------------  ---------
Sánchez    -1                 NULL

-----------
-1