OPEN (Transact-sql)
Açılır bir Transact-SQLsunucu imleç imleci yürüterek doldurur Transact-SQLdeyimi BILDIRMEK cursor veya takım üzerinde belirtilen cursor_variabledeyimi.
Transact-SQL Sözdizim Kuralları
Sözdizimi
OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Bağımsız değişkenler
KÜRESEL
Belirleyen cursor_name genel imleci için başvuruyor.cursor_name
Bir imleç bildirilen addır. Hem global hem de bir yerel imleç ile var cursor_namekendi adıyla cursor_nameglobal belirtilirse; genel imleç başvuran Aksi takdirde, cursor_name için yerel imleç başvurur.cursor_variable_name
Bir imleç değişken bir imleç başvuran adıdır.
Açıklamalar
İmleci INSENSITIVE veya statik seçeneği ile bildirilmiş, açık sonuç kümesi tutulacağı geçici bir tablo oluşturur. Aç başarısız sonuç kümesindeki her satır boyutunu en büyük satır boyutunu aşarsa SQL Servertabloları. İmleci anahtar kümesi seçeneği ile bildirilmiş, açık anahtar kümesi tutulacağı geçici bir tablo oluşturur. Geçici tablolara depolanır tempdb.
Bir imleç açıldıktan sonra alma @@ cursor_rows işlevi kullanmak satırlar son eleme imleç açtı.
[!NOT]
SQL Serveranahtar kümesi kullanımlı veya statik üreten desteklemeyen Transact-SQLimleçler uyumsuz. Transact-SQLImleç işlemlerini Aç veya getirme gibi işlenip, öylesine orada'hayır lüzum için zaman uyumsuz bir nesil Transact-SQLimleçler. SQL Serverzaman uyumsuz anahtar kümesi kullanımlı veya statik uygulama programlama arabirimi (API) sunucu imleçler nerede düşük gecikme süresi açık bir husustur desteklemek için istemci nedeniyle yuvarlak gezileri her imleç işlem için devam ediyor.
Örnekler
Aşağıdaki örnek, bir imleç açar ve tüm satırları döndürür.
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM AdventureWorks2012.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;
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM AdventureWorks2012.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;