Wie man mehrere Zeilen basierend auf einem Zahlenbereich in eine Tabelle einfügt
Ich muss eine bestimmte Anzahl von Zeilen in eine SQL Server-Tabelle einfügen.
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)
In diese Abfrage muss ich Daten einfügen, die von einem bestimmten Datum bis zu der der Variablen '@val' zugewiesenen Wertanzahl beginnen. In diesem Fall müssen also ab '02 -05-2016 '20 Zeilen in die Tabelle eingefügt werden und das Datum für jede Zeile um 1 Tag erhöht werden.
Wie kann ich das in einer einzelnen Anweisung tun, ohne dass eine Schleife oder mehrere Einfügeanweisungen erforderlich sind?