Это связано с обычной формой для языка SQL. IF
операторы, по определению, могут принимать только один SQL-оператор. Однако существует специальный вид операторов SQL, который может содержать несколько операторов SQL, блок BEGIN-END
.
Если вы опустите блок BEGIN-END
, ваш SQL будет работать нормально, но он будет выполнять только первый оператор как часть IF
.
В основном это:
IF @Term = 3
INSERT INTO @Classes
SELECT
XXXXXX
FROM XXXX blah blah blah
эквивалентно тому же, что и в блоке BEGIN-END
, потому что вы выполняете только один оператор. Тем не менее, по той же причине, по которой исключение фигурных скобок для оператора IF
в C-подобном языке является плохой идеей, всегда предпочтительно использовать BEGIN
и END
.