[SQL] '와'... 이전 문 키워드 근처의 구문이 잘못은 세미콜론으로 종료되어야합니다
SQL'와'... 이전 문 키워드 근처의 구문이 잘못은 세미콜론으로 종료되어야합니다
SQL 서버 2005를 사용 임. 내 저장 프로 시저의 조항 2가
WITH SomeClause1 AS
(
SELECT ....
)
WITH SomeClause2 AS
(
SELECT ....
)
하지만 오류가 발생합니다
'와'키워드 근처의 구문이 잘못되었습니다. 이 문이 공통 테이블 표현식 또는 XMLNAMESPACES 절 인 경우, 이전 문은 세미콜론으로 종료해야합니다.
내 옵션은 무엇입니까? 내가 모르는 어떤 스플리터가 있습니까?
해결법
-
==============================
1.열팽창 계수를 구분하려면 쉼표를 사용
열팽창 계수를 구분하려면 쉼표를 사용
;WITH SomeClause1 AS ( SELECT .... ) , SomeClause2 AS ( SELECT .... )
-
==============================
2.를 추가 잊어 ";" 이전 문에, 같은 오류 메시지가 말한다. "; 함께"당신은 괜찮을거야 ... : 그냥 언제나처럼 코딩하는 습관을
를 추가 잊어 ";" 이전 문에, 같은 오류 메시지가 말한다. "; 함께"당신은 괜찮을거야 ... : 그냥 언제나처럼 코딩하는 습관을
;WITH SomeClause1 AS ( SELECT .... )
그러나, 당신은 쉼표로 여러 열팽창 계수를 연결,하지만해야합니다 "; 함께"항상 앞에 세미콜론이 있습니다
;WITH SomeClause1 AS ( SELECT .... ) ,SomeClause2 AS ( SELECT .... )
-
==============================
3.믈라덴 Prajdic는 좋은 작품 "XMLNAMESPACES과"에 대한 솔루션이 제안했다.
믈라덴 Prajdic는 좋은 작품 "XMLNAMESPACES과"에 대한 솔루션이 제안했다.
http://itknowledgeexchange.techtarget.com/sql-server/using-xmlnamespaces-within-a-function/
-
==============================
4.나를 위해 작동하지 않습니다.
나를 위해 작동하지 않습니다.
내 경우에는 내가 테이블 반환 사용자 정의 함수의 RETURN 절 내에서 CTE 값을 사용하고 있습니다. 내가 BEGIN-END에서 RETURN 절을 포장하면 저도 같은 오류 메시지가 있지만, 베어 RETURN () 절은 괜찮 작동합니다. 나는 오류 메시지가이 경우 잘못된 생각합니다.
이 작품 :
CREATE FUNCTION [dbo].[ft_SplitStringOnChar] ( @s varchar(8000), @sep char(1) ) RETURNS TABLE AS RETURN ( WITH Pieces(pn, start, stop) AS ( SELECT 1, 1, CHARINDEX(@sep, @s) UNION ALL SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1) FROM Pieces WHERE stop > 0 ) SELECT pn AS TokenNumber, SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS TokenString FROM Pieces ) GO This does not: CREATE FUNCTION [dbo].[ft_SplitStringOnChar] ( @s varchar(8000), @sep char(1) ) RETURNS TABLE AS BEGIN ; RETURN ( WITH Pieces(pn, start, stop) AS ( SELECT 1, 1, CHARINDEX(@sep, @s) UNION ALL SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1) FROM Pieces WHERE stop > 0 ) SELECT pn AS TokenNumber, SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS TokenString FROM Pieces ) END GO
from https://stackoverflow.com/questions/1439123/incorrect-syntax-near-the-keyword-with-previous-statement-must-be-terminated by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] using 문 내부 SqlConnection.Close () (0) | 2020.05.25 |
---|---|
[SQL] 는 SQL Server의 "IN"절 제한 (0) | 2020.05.25 |
[SQL] 어떻게 제대로 MySQL의에서 CASE..WHEN 사용합니까 (0) | 2020.05.25 |
[SQL] 사슬로 매인 선택 박스 (국가, 주, 도시) (0) | 2020.05.25 |
[SQL] 어떻게 데이터베이스 데이터와의 TableView를 채우기 위해 (0) | 2020.05.25 |