rspec/rules/S121/tsql/rule.adoc
2023-06-15 11:57:45 +02:00

43 lines
1.0 KiB
Plaintext

Control structures are code statements that impact the program's control flow (e.g., if statements, for loops, etc.)
== Why is this an issue?
While not technically incorrect, the omission of ``++BEGIN...END++`` can be misleading and may lead to the introduction of errors during maintenance.
In the following example, the two statements seem to be attached to the `IF` statement, but only the first one is, and `somethingElse` will always be executed:
[source,sql]
----
IF @flag = 1 -- Noncompliant
EXEC something;
EXEC somethingElse;
----
Adding ``++BEGIN...END++`` improves the code readability and its robustness:
[source,sql]
----
IF @flag = 1
BEGIN
EXEC something;
EXEC somethingElse;
END;
----
The rule raises an issue when a control structure has no ``++BEGIN...END++``.
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]