Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
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