I have this SQL error, what's the problem? : AN SQLSTATE OR SQLCODE VARIABLE DECLARATION IS IN A NESTED COMPOUND STATEMENT
The error message An SQLSTATE or SQLCODE variable declaration is in a nested compound statement usually indicates that you have declared an SQLSTATE or SQLCODE variable within a compound statement (BEGIN ... END). In most databases, this is not allowed and the variable must be declared in the outermost scope.

To resolve this error, you need to move the declaration of the SQLSTATE or SQLCODE variable to the outermost scope and ensure that it is not within any compound statements.

Here's an example to illustrate this:

-- Incorrect: Declaration within a compound statement
DO
BEGIN
    DECLARE @sqlstate VARCHAR(5);
    -- more code here
END;

-- Correct: Declaration in the outermost scope
DECLARE @sqlstate VARCHAR(5);
DO
    -- more code here
END;
Do you have a memorable rhyme, lymeric, or acronym which will help me remember that DECLARE comes before DO?
Here is a rhyme to help you remember:

Declaring is important,
As it comes before the do. 
Because if you don't declare first,
Your code won't do what you want it to do.