16905: Der Cursor ist bereits geöffnet.
Fehlermeldung:
Meldung 16905, Ebene 16, Status 1, Zeile 10
Der Cursor ist bereits geöffnet.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht, einen Cursor mehr als einmal zu öffnen.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Jeder Cursor kann nur einmal geöffnet werden und muss erst geschlossen werden, bevor er wieder geöffnet werden kann.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
IF OBJECT_ID('dbo.t') IS NOT NULL
DROP TABLE dbo.t;
GO
CREATE TABLE dbo.t
(
c1 int
);
GO
DECLARE c CURSOR
FOR
SELECT
*
FROM
dbo.t;
OPEN c;
OPEN c;
FETCH NEXT FROM c
DEALLOCATE c;
Anmerkungen:
Im obigen Beispiel wird versucht, den Cursor zweimal zu öffnen, ohne ihn zwischendurch zu schliessen. Dies löst den Fehler aus.