Точки с запятой не всегда работают в составных операторах SELECT.
Сравните эти две разные версии тривиального составного оператора SELECT.
код
DECLARE @Test varchar(35);
SELECT @Test=
(SELECT
(SELECT
(SELECT 'Semicolons do not always work fine.';);););
SELECT @Test Test;
возвращает
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near ';'.
Однако код
DECLARE @Test varchar(35)
SELECT @Test=
(SELECT
(SELECT
(SELECT 'Semicolons do not always work fine.')))
SELECT @Test Test
возвращает
Test
-----------------------------------
Semicolons do not always work fine.
(1 row(s) affected)