sqlserver中触发器+游标操作实现
程序员文章站
2023-11-29 09:50:10
复制代码 代码如下: create trigger tri_wk_csvhead_history on wk_csvhead_history --声明一个tri_wk_cs...
复制代码 代码如下:
create trigger tri_wk_csvhead_history on wk_csvhead_history
--声明一个tri_wk_csvhead_history触发器,
instead of insert ---插入操作被代替执行下面的操作
as
begin
declare yb cursor --声明一个游标
for
select noteno from inserted--这里的noteno要和下面的匹配
open yb
declare @noteno varchar(50)--这里的noteno要和上面的匹配,定义一个游标变量@noteno,用来操作insered表中的noteno.
fetch next from yb into @noteno--这里的noteno要是上面的匹配,移动游标
while(@@fetch_status=0)--0操作成功,-1 fetch 语句失败或此行不在结果集中,-2 被提取的行不存在
begin
delete from wk_csvdetail_history where noteno=@noteno
delete from wk_csvhead_history where noteno=@noteno
fetch next from yb into @noteno --继续移动游标,直到@@fetch_status不等于时.
end
close yb --关闭游标
deallocate yb --释放游标
insert into wk_csvhead_history select * from inserted
end