gpt4 book ai didi

sql-server - 选择表重复表循环 MSSQL

转载 作者:行者123 更新时间:2023-12-03 08:28:58 26 4
gpt4 key购买 nike

首先,我喜欢 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,但我不知道如何有效地使用它。

最佳答案

您是否尝试过使用 GO 批量执行 INSERT 语句

IF OBJECT_ID(N'dbo.T1', N'U') IS NULL
CREATE TABLE dbo.T1
([Id] int, [name] varchar(7)) ;

IF OBJECT_ID(N'dbo.T2', N'U') IS NULL
CREATE TABLE dbo.T2
([Id] int, [name] varchar(7)) ;

INSERT INTO T1
([Id], [Name])
VALUES
(1, 'Apple'),
(2, 'Bananna'),
(3, 'Pear'),
(4, 'Orange'),
(5, 'Plum')
;

INSERT INTO dbo.T2
(Id,[name])
SELECT T.Id
,T.[name]
FROM dbo.T1 T
GO 100

DROP TABLE dbo.T1
DROP TABLE dbo.T2

关于sql-server - 选择表重复表循环 MSSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50599025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com