--== TALLY ==--SELECT NFROM TallyWHERE N > 0 AND N <= 100;
--== WHILE LOOP ==--DECLARE @HOLDER TABLE (N INT);DECLARE @COUNTER INT = 0;WHILE @COUNTER < 100BEGIN SET @COUNTER = @COUNTER + 1; INSERT INTO @HOLDER SELECT @COUNTER;ENDSELECT NFROM @HOLDER;
--== RECURSIVE CTE ==--WITH CTE(N) AS (SELECT 1 UNION ALLSELECT N+1 FROM CTEWHERE N+1 <= 100)SELECT NFROM CTE;
--== CASCADING CROSS JOIN ==--WITH CTE(N) AS (SELECT 1 FROM (VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))a(N)),CTE2(N) AS (SELECT 1 FROM CTE X, CTE Y)SELECT ROW_NUMBER() OVER(ORDER BY(SELECT NULL))FROM CTE2;
--== CROSS JOIN ==--SELECT ROW_NUMBER() OVER(ORDER BY(SELECT NULL))FROM (VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))a(N)CROSS JOIN (VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))b(N);
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS NINTO yourTallyTableFROM (VALUES(1))a(n);