Nice article. 🙂
Another way would be:
DECLARE @Start BIGINT, @Step BIGINT, @max-2 BIGINT
SELECT @Start = 1, @Step = 10 , @max-2 = 10000000
SELECT (Number * @Step + @Start)
FROM (
SELECT TOP (@Max/@Step)
ROW_NUMBER() OVER (ORDER BY c.[object_id]) - 1 AS Number
FROM sys.columns AS c WITH (NOLOCK)
CROSS JOIN sys.columns AS c2 WITH (NOLOCK)
CROSS JOIN sys.columns AS c3 WITH (NOLOCK)
CROSS JOIN sys.columns AS c4 WITH (NOLOCK)
CROSS JOIN sys.columns AS c5 WITH (NOLOCK)
) a
WHERE (Number * @Step + @Start) <= @max-2
It comes close to the ufn_Tally2 Function just a little more reads...
Regards,
Thorsten