BUKA (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Membuka kursor server Transact-SQL dan mengisi kursor dengan menjalankan pernyataan Transact-SQL yang ditentukan pada pernyataan DECLARE CURSOR atau SET cursor_variable .
Sintaks
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Argumen
GLOBAL
Menentukan bahwa cursor_name mengacu pada kursor global.
cursor_name
Adalah nama kursor yang dideklarasikan. Jika kursor global dan lokal ada dengan cursor_name sebagai namanya, cursor_name mengacu pada kursor global jika GLOBAL ditentukan; jika tidak, cursor_name mengacu pada kursor lokal.
cursor_variable_name
Adalah nama variabel kursor yang mereferensikan kursor.
Keterangan
Jika kursor dideklarasikan dengan opsi INSENSITIVE atau STATIC, OPEN membuat tabel sementara untuk menahan tataan hasil. OPEN gagal ketika ukuran baris apa pun dalam kumpulan hasil melebihi ukuran baris maksimum untuk tabel SQL Server. Jika kursor dideklarasikan dengan opsi KEYSET, OPEN membuat tabel sementara untuk menahan set kunci. Tabel sementara disimpan dalam tempdb.
Setelah kursor dibuka, gunakan fungsi @@CURSOR_ROWS untuk menerima jumlah baris yang memenuhi syarat di kursor terakhir yang dibuka.
Catatan
SQL Server tidak mendukung pembuatan kursor Transact-SQL berbasis keyset atau statis secara asinkron. Operasi kursor Transact-SQL seperti OPEN atau FETCH di-batch, sehingga tidak perlu membuat kursor Transact-SQL asinkron. SQL Server terus mendukung kursor server antarmuka pemrograman aplikasi (API) berbasis kunci asinkron atau statis di mana OPEN latensi rendah menjadi perhatian, karena perjalanan pulang pergi klien untuk setiap operasi kursor.
Contoh
Contoh berikut membuka kursor dan mengambil semua baris.
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM AdventureWorks2022.HumanResources.vEmployee
WHERE LastName like 'B%';
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;
Lihat Juga
TUTUP (T-SQL)
@@CURSOR_ROWS (T-SQL)
DEALLOCATE (Transact-SQL)
DEKLARASIKAN KURSOR (Transact-SQL)
FETCH (Transact-SQL)