Bagikan melalui


@@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.

Konvensi sintaks transact-SQL

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  

Lihat Juga

Fungsi Kursor (Transact-SQL)
FETCH (Transact-SQL)