row_number() over (order by a1.N)
DECLARE @Start BIGINT, @Step BIGINT, @Max BIGINT SELECT @Start = 1, @Step = 10 , @Max = 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) ) aWHERE (Number * @Step + @Start) <= @Max