Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server PER OGNI ciclo

Ecco un'opzione con una variabile di tabella:

DECLARE @MyVar TABLE(Val DATETIME)
DECLARE @I INT, @StartDate DATETIME
SET @I = 1
SET @StartDate = '20100101'

WHILE @I <= 5
BEGIN
    INSERT INTO @MyVar(Val)
    VALUES(@StartDate)

    SET @StartDate = DATEADD(DAY,1,@StartDate)
    SET @I = @I + 1
END
SELECT *
FROM @MyVar

Puoi fare lo stesso con una tabella temporanea:

CREATE TABLE #MyVar(Val DATETIME)
DECLARE @I INT, @StartDate DATETIME
SET @I = 1
SET @StartDate = '20100101'

WHILE @I <= 5
BEGIN
    INSERT INTO #MyVar(Val)
    VALUES(@StartDate)

    SET @StartDate = DATEADD(DAY,1,@StartDate)
    SET @I = @I + 1
END
SELECT *
FROM #MyVar

Dovresti dirci qual è il tuo obiettivo principale, come è stato detto da @JohnFx, questo potrebbe probabilmente essere fatto in un altro modo (più efficiente).