MS SQL服务器如何立即插入一个1到10的数字列到table(虚拟列)?

MS SQL Server how to instantly insert a 1 to 10 number column to table (virtual column)?

是否想立即为现有 table 上的每个行值添加一个数字列(1 到 10)?

您可以将 CROSS JOIN 与临时计数一起使用 table

例子

Select A.*
      ,B.Code
 From  YourTable A
 Cross Join ( Select Top 10 Code=row_number() Over (Order By (Select NULL)) From master..spt_values n1 ) B

您可以使用递归查询生成行,然后将其与您的 table 交叉连接。

with codes as (
    select 1 code
    union all select code + 1 from cte where code < 10
)
select t.*, c.code
from mytable t
cross join codes c

对于少量行,我希望递归查询比 top 10 快于 table。