1
earlier post에서 SO 기고자의 도움으로 CTE를 사용하는 SQL을 생성했습니다. 나는 테이블을 반환하는 사용자 정의 함수에 SQL을 캡슐화하려고하지만 아래 오류가 발생합니다. 그 라인 8은CTE SELECT를 테이블 값 사용자 정의 함수로 변경
Msg 102, Level 15, State 1, Procedure GetDescendentSteps, Line 8
Incorrect syntax near ';'.
참고 : 나는 오류 얻을
Alter FUNCTION GetDescendentSteps
(
@StepId INT
)
RETURNS TABLE
AS
RETURN
;WITH cteRecursion
AS (SELECT
StepId
,1 AS Level
FROM
Step
WHERE
StepId = @StepId
UNION ALL
SELECT
t.StepId
,c.Level + 1
FROM
Step t
INNER JOIN cteRecursion c
ON t.ParentStepId = c.StepId
)
SELECT
StepId,Level
FROM
cteRecursion
ORDER BY
Level,
StepId;
: 여기
코드의 이;WITH cteRecursion
가 .. 그리고를 내가에만 SQL 실행하면 그 (변수 @StepId를 리터럴로 대체 한 후) 8 행부터 시작합니다.
또한,이 간단한 예제는 작동 :
ALTER FUNCTION GetDescendentSteps
(
@StepId INT
)
RETURNS TABLE
AS
RETURN
select 7 As Stepid,1 As Level