• 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