Aaron Bertrand가 숫자 표 대신 CTE를 사용하도록 제안하는 StackOverflow 의 게시물을 보았습니다 . 이는 당면한 작업을 수행하는 우아한 방법입니다. 제 질문은 왜 CTE의 첫 번째 줄이 세미콜론으로 시작합니까?
;WITH n AS (SELECT TOP (10000) n FROM
(SELECT n = ROW_NUMBER() OVER
(ORDER BY s1.[object_id])
FROM sys.all_objects AS s1
CROSS JOIN sys.all_objects AS s2
) AS x ORDER BY n
)
SELECT n FROM n ORDER BY n; -- look ma, no gaps!
WITH 문이 이전 SELECT
또는 다른 것으로 구문 분석되지 않도록하기위한 것입니까? WITH 이전에 세미콜론을 사용하는 것과 관련하여 SQL Server 2005 BOL에서 아무것도 볼 수 없습니다.