Another option is to use a Number/Tally table. Here is one way with an inline tally table:DECLARE @RowsToInsert INT = 5DECLARE @Table TABLE (ID INT IDENTITY(1,1), Val INT);WITH Tens (N) AS (SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9), Thousands(N) AS (SELECT t1.N FROM Tens t1 CROSS JOIN Tens t2 CROSS JOIN Tens t3), Millions (N) AS (SELECT t1.N FROM Thousands t1 CROSS JOIN Thousands t2), Tally (N) AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) FROM Millions)INSERT @Table (Val)SELECT NFROM TallyWHERE N <= @RowsToInsertSELECT *FROM @Table