【发布时间】:2018-11-08 23:23:55
【问题描述】:
首先我很喜欢 Stack Overflow,你们都很乐于助人..
我有一个情况,我有一个这样的数据表;
1 - Apple
2 - Bananna
3 - Pear
4 - Orange
5 - Plum
我可以这样做;
DECLARE @C INT = 0
WHILE (@C < 3)
BEGIN
INSERT INTO tbl1 (ID,Name)
SELECT * FROM tbl2 -- THIS WILL CONTAIN 5 Rows
SET @C+=1
END
结果会是这样的;
1 - Apple
2 - Bananna
3 - Pear
4 - Orange
5 - Plum
1 - Apple
2 - Bananna
3 - Pear
4 - Orange
5 - Plum
1 - Apple
2 - Bananna
3 - Pear
4 - Orange
5 - Plum
现在我可以继续执行 3 次 while 循环并完成,但是这个选择脚本要重复 400,000 次,因此使用 insert->select->insert->select 等会导致大量过载。我想做的是这样的;
INSERT INTO tbl1
SELECT
ID,
Name,
@C = COUNT(ID)
FROM tbl2
WHERE @C < 3
我不知道这是否可能,但是另一种方法是使用 COMMIT 但我不知道如何有效地使用它。
【问题讨论】:
标签: sql-server select while-loop insert