Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-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)