如何使用存储过程重复现有行最多10,000次?我们必须使用while循环吗?
我的表Student
有3列,如Name, ID, Marks.
,目前有10条记录。
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。
答案 0 :(得分:2)
如果您不想/不想使用数字表,可以在SSMS中使用GO
来指定执行语句的次数:
Insert Student
(Id, Name, Marks)
Select Distinct Id, Name, Marks
From Student
Go 5000
上述语句将执行5,000
次,从而导致插入10,000
条记录。
答案 1 :(得分:1)
编辑 - 错过10,000行计数...已更正
这是一个临时数字/计数表...这算不算?
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
或其他选项
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