gpt4 book ai didi

sql - INSERTED 表中的多行

转载 作者:行者123 更新时间:2023-12-02 03:54:39 25 4
gpt4 key购买 nike

在 MS SQL Server 中的表上,如果这些行满足某些条件,我需要在新行上运行 CLR 存储过程。我认为这或多或少会很简单:

if ((SELECT Cabinet FROM INSERTED) = 1 OR (SELECT Cabinet FROM INSERTED) = 3) AND (SELECT Result_02 FROM INSERTED) = 'N'
BEGIN
DECLARE @id int
SET @id = (SELECT ID FROM INSERTED)
exec PrintLabel
@id,
N'LP 2844 LGE'
END;

但是,这最近开始抛出有关返回多行的子查询的错误。我了解到 INSERT 触发器对每个语句运行一次,不一定在单个行上运行。因此,该 IF 语句可以处理多行,从而导致错误。

我的问题是:如果批量添加行(在这种情况下通过 MERGE 语句),我如何迭代每个新行。

最佳答案

为 N 行调用存储过程仍然需要一个游标。

declare @id int
declare cur cursor fast_forward for
select id
from inserted
where Cabinet in (1,3)
open cur
fetch next from cur into @id
while @@fetch_status = 0
begin
exec PrintLabel @id, N'LP 2844 LGE'
fetch next from cur into @id
end
close cur
deallocate cur

关于sql - INSERTED 表中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235048/

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