Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So fügen Sie mehrere Zeilen basierend auf einem Zahlenbereich in eine Tabelle ein

Sie können eine Zahlentabelle verwenden, wenn Sie eine haben, verwenden Sie master.dbo.spt_values wenn Sie einen wollen, der Werte bis 2048 hat, oder einen eigenen erstellen. In diesem Fall könnten Sie master.dbo.spt_values verwenden :

DECLARE @val AS INT=20, @val2 AS VARCHAR(50);
DECLARE @Date AS DATETIME = CONVERT(DATETIME,'02-05-2016');

SET @val2 = 'abc'

INSERT INTO dbo.YourTable
SELECT @val2, DATEADD(DAY,number,@Date)
FROM master.dbo.spt_values
WHERE type = 'P'
AND number <= @val;

Da dies jedoch bei Null beginnt, erhalten Sie als Ergebnis 21 Zeilen