Megosztás:


NYISD (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Megnyitja a Transact-SQL kiszolgálói kurzort, és feltölti a kurzort a DEKLARÁLÁS KURZOR vagy a SET cursor_variable utasításban megadott Transact-SQL utasítás végrehajtásával.

Transact-SQL szintaxis konvenciók

Syntax

OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name }  

Arguments

GLOBAL
Megadja, hogy cursor_name globális kurzorra hivatkozik.

cursor_name
A deklarált kurzor neve. Ha globális és helyi kurzor is létezik, cursor_name a nevük, cursor_name globális kurzorra hivatkozik, ha a GLOBAL van megadva; ellenkező esetben cursor_name a helyi kurzorra hivatkozik.

cursor_variable_name
A kurzor változójának neve, amely egy kurzorra hivatkozik.

Remarks

Ha a kurzor inSENSITIVE vagy STATIC beállítással van deklarálva, az OPEN létrehoz egy ideiglenes táblát az eredménykészlet tárolásához. Az OPEN sikertelen, ha az eredményhalmaz bármely sorának mérete meghaladja az SQL Server-táblák maximális sorméretét. Ha a kurzor a KEYSET beállítással van deklarálva, az OPEN létrehoz egy ideiglenes táblát a kulcskészlet tárolásához. Az ideiglenes táblákat a tempdb tárolja.

Miután megnyitotta a kurzort, a @@CURSOR_ROWS függvénnyel megkapja az utolsó megnyitott kurzor megfelelő sorainak számát.

Note

Az SQL Server nem támogatja a kulcskészlet-alapú vagy statikus Transact-SQL kurzorok aszinkron módon történő előállítását. Transact-SQL kurzorműveletek, például az OPEN vagy a FETCH kötegelve vannak, így nincs szükség Transact-SQL kurzorok aszinkron generációjára. Az SQL Server továbbra is támogatja az aszinkron kulcskészlet-alapú vagy statikus alkalmazásprogramozási felület (API) kiszolgálói kurzorait, ahol az alacsony késésű OPEN aggodalomra ad okot, mivel az egyes kurzorműveletek ügyfél-körútjaira kerül sor.

Examples

Az alábbi példa megnyitja a kurzort, és beolvassa az összes sort.

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;  

Lásd még:

ZÁRT (Transact-SQL)
@@CURSOR_ROWS (Transact-SQL)
DEALLOCATE (Transact-SQL)
DEKLARÁLT KURZOR (Transact-SQL)
HOZNI (Transact-SQL)