我必須將特定數量的行插入到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天。
我該如何在沒有任何循環或多重插入語句的單個語句中執行此操作?
很明顯,你正在嘗試創建一個運行數字/日期列表:[在我的答案之一](http://stackoverflow.com/a/32474751/5089204),你會發現一個使用「Tally-CTE」爲每一天創建一個數字,日期和許多附帶信息的列表。認爲這是你需要的... – Shnugo