вы можете использовать эту функцию (она основана на функции Ицик Бен-Гана из интервью, которое я провел с ним здесь: Интервью с Ицик Бен-Ган Автор Inside Microsoft SQL Server 2005: T-SQL Querying )
CREATE FUNCTION dbo.fn_numbers(@Start AS BIGINT,@End AS BIGINT) RETURNS TABLE
AS
RETURN
WITH
L0 AS(SELECT 1 AS c UNION ALL SELECT 1),
L1 AS(SELECT 1 AS c FROM L0 AS A, L0 AS B),
L2 AS(SELECT 1 AS c FROM L1 AS A, L1 AS B),
L3 AS(SELECT 1 AS c FROM L2 AS A, L2 AS B),
L4 AS(SELECT 1 AS c FROM L3 AS A, L3 AS B),
L5 AS(SELECT 1 AS c FROM L4 AS A, L4 AS B),
Nums AS(SELECT ROW_NUMBER() OVER(ORDER BY c) AS n FROM L5)
SELECT n FROM Nums
WHERE n between @Start and @End;
GO
Вот как вы его запускаете
-- Test function
SELECT * FROM dbo.fn_numbers(1,100) AS F;
GO
-- Test function
SELECT * FROM dbo.fn_numbers(200,700) AS F;
GO