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  

Weitere Informationen