SQL Serverテーブルに特定の数の行を挿入する必要があります。数値の範囲に基づいてテーブルに複数の行を挿入する方法
DECLARE @val AS INT = 20,
@val2 AS VARCHAR(50),
@Date AS DATETIME = CONVERT(DATETIME,'02-05-2016'),
@i AS INT = 0
SET @val2 = 'abc'
DECLARE @tbl TABLE
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[val2] VARCHAR(50) NULL,
[datum] [datetime] NULL
)
--INSERT INTO @tbl
SELECT @val2, DATEADD(DAY, @i, @Date)
UNION ALL
SELECT @val2, DATEADD(DAY, @i, @Date)
このクエリでは、指定された日付から変数 '@val'に割り当てられた値の数までの日付を挿入する必要があります。したがって、この場合、'02 -05-2016 'から始まる20個の行をテーブルに挿入し、各行に対して1日増やす必要があります。
ループ処理や複数の挿入文を使用せずに単一の文でどのように行うことができますか?
明らかに実行中の数字/日付のリストを作成しようとしています。[私の回答の1つで](http://stackoverflow.com/a/32474751/5089204)には、「Tally-CTE」を使った例があります数字、日付、および毎日の多くの副情報のリストを作成します。これがあなたが必要とするものだと思ってください... – Shnugo