首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表中重复没有数字表的行

在表中重复没有数字表的行
EN

Stack Overflow用户
提问于 2017-01-31 15:27:59
回答 2查看 59关注 0票数 0

如何使用存储过程重复现有行最多10,000次?我们必须使用we循环吗?我的表StudentName, ID, Marks.一样有3列,目前它有10条记录。

代码语言:javascript
复制
Sample Data:
ID  Name  Marks
1   John   88
2   Dave   98

Expected Data:
ID  Name  Marks
    1   John   88
    2   Dave   98
    1   John   88
    2   Dave   98
    1   John   88
    2   Dave   98
    1   John   88
    2   Dave   98

预期的数据行计数应该是10,000。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-31 15:36:44

如果不能/不想使用数字表,则可以在SSMS中使用GO指定要执行语句的次数:

代码语言:javascript
复制
Insert  Student
        (Id, Name, Marks)
Select  Distinct Id, Name, Marks
From    Student
Go 5000

上面的语句将执行5,000时间,从而插入10,000记录。

票数 2
EN

Stack Overflow用户

发布于 2017-01-31 15:46:36

编辑-错过了10,000行计数.校正

这是一个临时数字/理货表.这算不算?

代码语言:javascript
复制
Declare @YourTable table (ID int,Name varchar(50),Marks int)
Insert Into @YourTable values
(1,'John',88),
(2,'Dave',98)

;with cte0(N) As (Select 1 From (Values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) N(N)),
      cteN(N) As (Select Top (10000/(select count(*) from @YourTable)) Row_Number() over (Order By (Select NULL)) From cte0 N1, cte0 N2, cte0 N3, cte0 N4) -- 10,000
Select A.*
 From  @YourTable A
 Cross Join cteN B

或其他选项

代码语言:javascript
复制
Select A.*
 From  @YourTable A
 Cross Join (Select Top (10000/(select count(*) from @YourTable)) N=Row_Number() Over (Order By (Select Null)) From master..spt_values N1,master..spt_values N2) B
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41961300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档