Hast du einen einprägsamen Reim, ein Limerick oder ein Akronym, das mir dabei hilft, mich daran zu erinnern, dass DECLARE vor DO kommt?
Ich habe diesen SQL-Fehler, was ist das Problem? : EINE SQLSTATE- ODER SQLCODE-VARIABLEDEKLARATION BEFINDET SICH IN EINER VERSCHACHTELTER ZUSAMMENGESETZTER ANWEISUNG Die Fehlermeldung "Eine SQLSTATE- oder SQLCODE-Variablendeklaration befindet sich normalerweise in einer verschachtelten zusammengesetzten Anweisung" deutet in der Regel darauf hin, dass Sie eine SQLSTATE- oder SQLCODE-Variable innerhalb einer zusammengesetzten Anweisung (BEGIN ... END) deklariert haben. In den meisten Datenbanken ist dies nicht zulässig und die Variable muss im äußersten Gültigkeitsbereich deklariert werden.

Um diesen Fehler zu beheben, müssen Sie die Deklaration der SQLSTATE- oder SQLCODE-Variable in den äußersten Gültigkeitsbereich verschieben und sicherstellen, dass sie sich nicht in einer zusammengesetzten Anweisung befindet.

Hier ist ein Beispiel, um dies zu veranschaulichen:

-- Falsch: Deklaration innerhalb einer zusammengesetzten Anweisung
DO
BEGIN
    DECLARE @sqlstate VARCHAR(5);
    -- mehr Code hier
END;

-- Richtig: Deklaration im äußersten Gültigkeitsbereich
DECLARE @sqlstate VARCHAR(5);
DO
    -- mehr Code hier
END;
Hier ist ein Reim, der dir helfen soll, dich zu erinnern:

Deklarieren ist wichtig,
Da es vor dem Do kommt.
Denn wenn du nicht zuerst deklarierst,
Macht dein Code nicht das, was du willst.