sql >> データベース >  >> RDS >> Sqlserver

SQL ServerFOREACHループ

    テーブル変数のオプションは次のとおりです。

    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
    

    一時テーブルでも同じことができます:

    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
    

    @JohnFxが言ったように、あなたの主な目標は何かを教えてください。これはおそらく別の(より効率的な)方法で行うことができます。



    1. データベース内の削除されたレコードの数値主キーは、将来の新しいレコードに再利用されますか?

    2. mysqlデータベースからJSON配列を構築する方法

    3. SQLServerのカーソルタイプ-KEYSETカーソル| SQLServerチュートリアル/TSQLチュートリアル

    4. 毎月制約をチェックするOracleトリガー