我想在SQL中插入从计数器中检索到的值,并重复300次。
类似的东西:
DECLARE @Counter = 0;
-- BEGIN Loop
SET @Counter = @Counter + 1
INSERT INTO tblFoo VALUES(@Counter)
-- REPEAT 300 times
我怎样才能做到这一点? 感谢
答案 0 :(得分:30)
你可以这样试试:
DECLARE @i int = 0
WHILE @i < 300
BEGIN
SET @i = @i + 1
/* your code*/
END
答案 1 :(得分:13)
DECLARE @first AS INT = 1
DECLARE @last AS INT = 300
WHILE(@first <= @last)
BEGIN
INSERT INTO tblFoo VALUES(@first)
SET @first += 1
END
答案 2 :(得分:5)
如果可以,我会阻止循环,设置方法效率更高:
INSERT INTO tblFoo
SELECT TOP (300) n = ROW_NUMBER()OVER (ORDER BY [object_id])
FROM sys.all_objects ORDER BY n;
答案 3 :(得分:1)
在ssms中,我们可以使用GO来执行相同的语句
修改强> 这意味着如果你把
some query
GO n
某些查询将被执行n次
答案 4 :(得分:-1)
找到了一些我用来解决Simulair问题的答案:
CREATE TABLE nummer (ID INTEGER PRIMARY KEY, num, text, text2);
WITH RECURSIVE
for(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM for WHERE i < 1000000)
INSERT INTO nummer SELECT i, i+1, "text" || i, "otherText" || i FROM for;
添加1 miljon行,其中