CLOSE (Transact-SQL)
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. Wenn sowohl ein globaler als auch ein lokaler Cursor mit dem Namen cursor_name vorhanden sind, bezieht sich cursor_name auf den globalen Cursor, wenn GLOBAL angegeben ist. Andernfalls bezieht sich cursor_nameauf 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 AdventureWorks2012.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