그냥 재미를 위해 노력하고 테이블을 작성 평가 함수의 테이블을 생성합니다. 테스트를 위해,나를 코드 값을 전달되어야에서는 변수입니다.
자체 작동:
WITH cte AS (
SELECT cast('2021-10-01' AS date) AS date
UNION ALL
SELECT dateadd(day,1,date) FROM cte WHERE date<current_timestamp
)
SELECT * FROM cte OPTION(maxrecursion 0);
참고 OPTION
니다.
기능으로,그것은 작동하지 않습니다면 제거 OPTION
절에서 끝:
CREATE FUNCTION dates(@start date, @rows INT) RETURNS TABLE AS
RETURN
WITH cte AS (
SELECT cast('2021-10-01' AS date) AS date
UNION ALL
SELECT dateadd(day,1,date) FROM cte WHERE date<current_timestamp
)
SELECT * FROM cte -- OPTION(maxrecursion 0)
;
에 대한 테스트 데이터를,그것은 좋지만,그것은 확실히 실패한다면 나는 그것을 주일에서 올해의 시작 이후,그것 보다는 더 많은 것을 포함한다 100recursions.
이 구문을 정확하게 이를 위해,또는 다른 Microsoft 특질을 필요로 하는 방법?