Aracılığıyla paylaş


AÇIK (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Transact-SQL sunucu imlecini açar ve DECLARE CURSOR veya SET cursor_variable deyiminde belirtilen Transact-SQL deyimini yürüterek imleci doldurur.

Transact-SQL söz dizimi kuralları

Syntax

OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }  

Arguments

GLOBAL
cursor_name genel bir imleç başvurduğunu belirtir.

cursor_name
Bildirilen imlecin adıdır. Adı cursor_name olan hem genel hem de yerel bir imleç varsa, cursor_name GENEL belirtilirse genel imleç anlamına gelir; aksi takdirde , cursor_name yerel imleç anlamına gelir.

cursor_variable_name
İmleç değişkenine başvuran bir imleç değişkeninin adıdır.

Remarks

İmleç DUYARSIZ veya STATIK seçeneğiyle bildirilirse, AÇ işlevi sonuç kümesini tutmak için geçici bir tablo oluşturur. Sonuç kümesindeki herhangi bir satırın boyutu SQL Server tabloları için en büyük satır boyutunu aştığında OPEN başarısız olur. İmleç KEYSET seçeneğiyle bildirilirse, OPEN anahtar kümesini tutmak için geçici bir tablo oluşturur. Geçici tablolar tempdb'de depolanır.

İmleç açıldıktan sonra, son açılan imleçteki uygun satır sayısını almak için @@CURSOR_ROWS işlevini kullanın.

Note

SQL Server, anahtar kümesi temelli veya statik Transact-SQL imleçlerinin zaman uyumsuz olarak oluşturulmasını desteklemez. OPEN veya FETCH gibi Transact-SQL imleç işlemleri toplu olarak çalıştırıldığından, Transact-SQL imleçlerin zaman uyumsuz oluşturulmasına gerek yoktur. SQL Server, her imleç işlemi için istemci gidiş dönüşleri nedeniyle düşük gecikmeli OPEN'ın sorun olduğu zaman uyumsuz anahtar kümesi temelli veya statik uygulama programlama arabirimi (API) sunucu imleçlerini desteklemeye devam eder.

Examples

Aşağıdaki örnek bir imleç açar ve tüm satırları getirir.

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;  

Ayrıca Bkz.

CLOSE (Transact-SQL)
@@CURSOR_ROWS (Transact-SQL)
DEALLOCATE (Transact-SQL)
İMLEÇ BILDIRME (Transact-SQL)
GETIR (Transact-SQL)