一句insert批量插入,并需要在触发器里写各种判断逻辑,这时候需要用游标,代码如下:

除了把游标主键字段(下面红色id)改一下和循环中的业务逻辑按照自己实际情况写,其他的黑色字体部分无需改动。然后在循环中使用@subid代表其中一行的主键了。

declare @subid int
--设定游标循环,更新配送关系表,以配送关系id为单位
declare subdata_curr cursor for
select id from inserted     --这里查出主键,以主键为游标标识
	
open subdata_curr --打开游标
fetch next from subdata_curr into @subid --开始循环游标变量
while(@@fetch_status=0)
begin
        --业务逻辑
        declare @in_count int,
	select @in_count = i.入库数量
	from inserted i where i.id = @subid
fetch next from subdata_curr into @subid   --循环游标变量
end
close subdata_curr
deallocate subdata_curr --关闭、释放游标