그래서 여러 번 with
을 보이고, 너무 여러 번 SQL 서버로가 가지고있는 질문 ;
전에 그것을"With"키워드는 SQL에서 어떻게 작동합니까?
어떻게 ;with ...
작업을 수행 ??
;with coords(...) as (
SELECT * ...
)
왜 앞에 ;
이 있어야합니까?
그래서 여러 번 with
을 보이고, 너무 여러 번 SQL 서버로가 가지고있는 질문 ;
전에 그것을"With"키워드는 SQL에서 어떻게 작동합니까?
어떻게 ;with ...
작업을 수행 ??
;with coords(...) as (
SELECT * ...
)
왜 앞에 ;
이 있어야합니까?
세미콜론은 쿼리를 끝내기 위해 SQL에서 사용됩니다. 이와 같은 쿼리 앞에 놓는 것은 이전 쿼리가 종료되었다는 것을 데이터베이스가 이해하고 있는지 확인하는 것입니다.
원래 각 줄마다 한 줄씩 입력 할 때마다 줄 바꿈이 필요했기 때문에 데이터베이스는 언제 쿼리를 실행할지를 알아야했습니다. 전체 쿼리가 단일 문자열로 전송되면 SQL 구문이 쿼리가 끝나는 위치를 결정하기에 충분하지 않은 경우 세미콜론 만 있으면됩니다. with
키워드가 다른 용도로 사용되기 때문에 이전 쿼리의 일부가 아닌지 확인하기 전에 세미콜론을 사용해야 할 수도 있습니다.
CTE 용 WITH을 사용하려면 이전 문의 내용을 ;
(으)로 종료해야합니다. 이 같은 시작을 사용하여 올바른 구문을 보장
그래서 SO 질문을 참조하십시오 SQL 서버 2008
병합 않습니다 Incorrect syntax near the keyword 'with'...previous statement must be terminated with a semicolon
WITH의 사용은 공통 테이블 식 (CTE를)위한입니다. 그들은 CTE를 첫 번째 문으로 정의하려고했습니다 (즉, 쿼리의 다른 부분과 연결할 수 없음).
모든 SQL 문을 세미콜론으로 종료하는 것이 가장 좋습니다. SQL Server 문서 (예 : here)는 향후 버전에서 위임 될 것이므로 버릇이 생겨날 수 있다는 변명의 여지가 없다고 제안합니다.
대답하는 사람은 대답하는 사람이 엉성한 코더이거나 응답자가 질문하는 사람이 실수 한 코더라고 가정하기 때문에 Stackoverflow에 ;WITH...
을 볼 수 있습니다. (그리고 그들은 그럴 때 후자라고 주장 할 것입니다. 이전 : :) "조잡한 코더"의 정의는 세미콜론을 강요 할 때만 사용하는 사람입니다. = OFF \t ( \t PAD_INDEX와 함께 \t 당신의 테이블`에 제약을 작성하는 동안
Transact-SQL 구문 표기 규칙 (http://msdn.microsoft.com/en-us/library/ms177563.aspx) "Transact-SQL 문 종료 자이 버전의 SQL Server에서 대부분의 문에는 세미콜론이 필요하지 않지만, 그것은 향후 버전에서 필요할 것입니다. " –
당신은 \t ON, STATISTICS_NORECOMPUTE = OFF \t, IGNORE_DUP_KEY = OFF \t, ALLOW_ROW_LOCKS = \t, ALLOW_PAGE_LOCKS = ON이 볼 수 있어야합니다)'을 사용하면 공통 테이블 표현식과 함께'with' 키워드를 여러 가지 문맥 적으로 사용하게됩니다. 세미 콜론은 쿼리를 구문 분석하는 동안 SQL Server의 마음에 잠길 수있는 혼란을 피합니다. – RBT