CLOSE (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Schließt einen geöffneten Cursor, indem die Zuordnung des aktuellen Resultsets zum Cursor aufgehoben wird und alle Cursorsperren für die Zeilen, auf die der Cursor positioniert ist, freigegeben werden. CLOSE
sorgt dafür, dass die Daten für ein erneutes Öffnen verfügbar sind, jedoch sind das Abrufen und positionierte Aktualisieren von Daten erst dann zulässig, wenn der Cursor erneut geöffnet wird. CLOSE muss bei einem geöffneten Cursor ausgeführt werden. Wurde ein Cursor lediglich deklariert oder bereits geschlossen, darf CLOSE
nicht angewendet werden.
Transact-SQL-Syntaxkonventionen
Syntax
CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name }
Argumente
GLOBAL
Gibt an, dass cursor_name auf einen globalen Cursor verweist.
cursor_name
Der Name eines geöffneten Cursors. Falls sowohl ein lokaler als auch ein globaler Cursor namens cursor_name vorhanden ist, bezieht sich cursor_name nur dann auf den globalen Cursor, wenn GLOBAL angegeben ist. Andernfalls bezieht sich cursor_name auf den lokalen Cursor.
cursor_variable_name
Der Name einer Cursorvariablen, die mit einem geöffneten Cursor verknüpft ist.
Beispiele
Im folgenden Beispiel wird die richtige Platzierung der CLOSE
-Anweisung in einem cursorbasierten Prozess gezeigt.
DECLARE Employee_Cursor CURSOR FOR
SELECT EmployeeID, Title FROM AdventureWorks2022.HumanResources.Employee;
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;
GO