Sql server SQL Server:使用select语句创建动态范围的行

Sql server SQL Server:使用select语句创建动态范围的行,sql-server,select,Sql Server,Select,使用Ruby可以生成具有以下代码的数组: some_range = (1..10).to_a # Returns => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 我正在使用SELECT语句在SQLServer中寻找类似的东西。i、 e.我想制作此表: id 1 2 3 4 5 6 7 8 9 10 etc 使用类似以下内容的语句: DECLARE @ids TVP INSERT @ids (id) SELECT RANGE(0..10000) 我的用例是

使用Ruby可以生成具有以下代码的数组:

some_range = (1..10).to_a
# Returns => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我正在使用SELECT语句在SQLServer中寻找类似的东西。i、 e.我想制作此表:

id
1
2
3
4
5
6
7
8
9
10
etc
使用类似以下内容的语句:

DECLARE @ids TVP
INSERT @ids
    (id)
SELECT RANGE(0..10000)

我的用例是,我想要一种快速测试SP的方法,该方法将@ids作为TVP。SQL Server是否提供了实现这一点的功能?

如果要生成数字表,我通常会使用这样的递归CTE:

;WITH NumberGen AS
(
    SELECT 1 AS Number
    UNION ALL 
    SELECT Number + 1 AS Number
    FROM NumberGen
    WHERE Number < $#RowsToBeGenerated$
)
INSERT INTO $Table$($Field$)
    (   
        SELECT Number
        FROM NumberGen
        WHERE Number BETWEEN 1 AND $#RowsToBeGenerated$
    )
    OPTION (MAXRECURSION 0);

非常感谢。是否有任何理由使用$variable$而不是,根据约定进行sql查询?没有,我只在代码段中使用$sign作为实际值的占位符。它们没有真正的意义。我在尝试生成100多行时达到了递归堆栈的限制。在语句完成之前,已耗尽最大递归100。你知道怎么解决这个问题吗?我希望生成100k+行选项MAXRECURSION 0;应该取消递归限制。你在CTE中使用过吗?
DECLARE @Range INT = 10

    ;with cte
    as
    (
    select 1 as value
    union all
    select value + 1 from cte where value < @Range
    )
    select * from cte