@@FETCH_STATUS (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Fungsi ini mengembalikan status pernyataan FETCH kursor terakhir yang dikeluarkan terhadap kursor apa pun yang saat ini dibuka oleh koneksi.
Sintaks
@@FETCH_STATUS
Jenis Hasil
Integer
Tampilkan Nilai
Nilai hasil | Deskripsi |
---|---|
0 | Pernyataan FETCH berhasil. |
-1 | Pernyataan FETCH gagal atau baris berada di luar tataan hasil. |
-2 | Baris yang diambil hilang. |
-9 | Kursor tidak melakukan operasi pengambilan. |
Keterangan
Karena @@FETCH_STATUS
global untuk semua kursor pada koneksi, gunakan dengan hati-hati. Setelah pernyataan FETCH dijalankan, pengujian harus @@FETCH_STATUS
terjadi sebelum pernyataan FETCH lainnya dijalankan terhadap kursor lain. @@FETCH_STATUS
tidak ditentukan sebelum pengambilan terjadi pada koneksi.
Misalnya, pengguna menjalankan pernyataan FETCH dari satu kursor, lalu memanggil prosedur tersimpan yang membuka dan memproses hasil dari kursor lain. Ketika kontrol kembali dari yang disebut prosedur tersimpan, @@FETCH_STATUS
mencerminkan FETCH terakhir yang dijalankan di dalam prosedur tersimpan itu, bukan pernyataan FETCH yang dijalankan sebelum panggilan ke prosedur tersimpan.
Untuk mengambil status pengambilan terakhir kursor tertentu, kueri kolom fetch_status fungsi manajemen dinamis sys.dm_exec_cursors.
Contoh
Contoh ini digunakan @@FETCH_STATUS
untuk mengontrol aktivitas kursor dalam perulangan WHILE
.
DECLARE Employee_Cursor CURSOR FOR
SELECT BusinessEntityID, JobTitle
FROM AdventureWorks2022.HumanResources.Employee;
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor;
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
GO