When the line immediately after a conditional has neither an enclosing BEGIN…END
block nor indentation, the intent of the code is
unclear and perhaps not what is executed. Additionally, such code is confusing to maintainers.
IF @condition -- Noncompliant
EXEC doTheThing;
EXEC doTheOtherThing; -- Was the intent to call this function unconditionally?
It becomes even more confusing and bug-prone if lines get commented out.
IF @condition -- Noncompliant
-- EXEC doTheThing;
EXEC doTheOtherThing; -- Was the intent to call this function conditionally?
Indentation alone or together with BEGIN…END
block makes the intent clear.
IF @condition
EXEC doTheThing;
EXEC doTheOtherThing; -- Clear intent to call this function unconditionally
IF @condition
BEGIN
EXEC doTheThing;
END;
EXEC doTheOtherThing; -- Clear intent to call this function unconditionally
This rule raises an issue if the line controlled by a conditional has the same indentation as the conditional and is not enclosed in a
BEGIN…END
block.