gpt4 book ai didi

sql - 逐行复制表格

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

我正在做一些触发性能优化,我想测试一下。我有一个实际的触发器和一个修改过的触发器,我想在真实数据上对旧触发器和新触发器进行测试并进行比较。我想将表 A 逐行复制到 A_BCK。表 A 大约有 60 列和 4000 行,所以我的触发器将被执行 4000 次,我可以用它来进行性能测试。

我读过游标,但无法弄清楚如何使用游标和变量进行逐行复制(不是 select into a_bck 或 insert into a_bck select from a 两者都只生成一个插入)。

我现在的行复制过程是这样的:

declare @actualrow varchar(15);

DECLARE eoauz CURSOR FAST_FORWARD FOR SELECT * FROM A

open eoauz
fetch next from eoauz into @actualrow
while @@fetch_status = 0
begin
/* INSERT INTO A_BCK VALUES FROM @actualrow */
fetch next from eoauz into @actualrow
end
close eoauz
deallocate eoauz

当然这不行。我需要像行变量而不是 varchar 的东西。有人可以帮助我完成任务吗?

最佳答案

我不经常使用游标,所以我可能缺少一种更直接的方法......

SELECT TOP 0 *
INTO #t
FROM master..spt_values /*Create an empty table of correct schema*/

DECLARE eoauz CURSOR FAST_FORWARD FOR
SELECT *
FROM master..spt_values

OPEN eoauz

INSERT INTO #t
EXEC ('fetch next from eoauz')

WHILE @@FETCH_STATUS = 0
INSERT INTO #t
EXEC ('fetch next from eoauz')

CLOSE eoauz

DEALLOCATE eoauz

SELECT *
FROM #t

DROP TABLE #t

关于sql - 逐行复制表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826801/

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