您的位置:首页 > 其它

使用触发器一次性修改多条记录

2016-12-15 22:02 232 查看
要注意:触发器的触发是操作,而不是针对行记录,这也是为什么我一次删除、新增很多数据时结果只有一条记录被触发出来,在面对一条sql语句删除了、新增了多条记录时需要使用游标进行操作

SQL Server

场景:三张表 On_Duty,On_Duty_Future,On_Duty_History1

在On_Duty中删除一条记录,就把数据插入到另外两张表中,数据库语句如下:

create trigger triForHiry
on On_Duty
for delete
as

begin

declare YB CURSOR /*声明游标*/
for
select ID,Base from deleted
open YB

declare @ID int,@Base varchar(20)
fetch next from YB into @ID,@Base/*读取第一条数据*/
while(@@fetch_status=0) /*表示成功执行fetch语句*/
begin
/* 将On_Duty_Future中相应的值班信息存入On_Duty*/
insert into On_Duty_Future values(@ID,@Base,'','','','','','')
insert into On_Duty_History1 values(@ID,@Base,'','','','','','')

fetch next from YB into @ID,@Base /*游标下移*/
end
close YB
deallocate YB
end

最后结果就是执行一条删除多条数据的sql语句,在其他两张表中新增了删除数量的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐