입력 매개변수를 기반으로 Datetime 값을 사용하여 SQL 테이블 필드 자동 채우기

질문:

내 SQL 테이블에 날짜 필드가 하나 있다.count를 변수로 하고 표를 기록하는 과정을 만들었습니다.숫자가 5이면 5개의 레코드가 생성됩니다.내가 원하는 논리는 내가 5를 입력 매개 변수로 제공할 때, 표의datetime 필드는 자동으로 값을 채워야 한다는 것이다
12/20/2015 9:00
12/20/2015 11:00
12/20/2015 13:00
12/20/2015 15:00
12/20/2015 17:00
따라서 기록을 표에 삽입할 때마다 2시간의 시간을 추가해야 한다.

답안

귀속CTEs은 동적 기록을 만드는 방법의 하나이다.여기서 관건은 닻을 만드는 것입니다. (이것은 CTE 내부의 첫 번째 선택이고, 이것은 당신의 시작점입니다.)및 체크아웃(WHERE 자문)
100개 이상의 기록을 한 번에 작성하려면 MAXRECURSION을 읽으십시오.
예.
DECLARE @RecordsRequired    INT = 5;
DECLARE @BaseDateTime        SMALLDATETIME = GETDATE();


WITH [Sample] AS
    (
        /* This CTE uses recursion to create the required number of 
         * records.
         */
            SELECT
                1                AS RowNumber,
                @BaseDateTime    AS [DateTime]

        UNION ALL

            SELECT
                RowNumber + 1                    AS RowNumber,
                DATEADD(HOUR, 2, [DateTime])    AS [DateTime]
            FROM
                [Sample]
            WHERE
                RowNumber < @RecordsRequired 
    )
SELECT
    RowNumber,
    [DateTime]
FROM
    [Sample]
;
WHILE 블록도 볼 수 있습니다.