使用触发器一次性修改多条记录
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语句,在其他两张表中新增了删除数量的数据。
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语句,在其他两张表中新增了删除数量的数据。
相关文章推荐
- Oracle数据库使用触发器记录表数据修改记录
- MySql使用全记录2 -----列操作(添加列、设定默认值、修改指定多条记录的列值)
- mysql中如何使用INSERT一次性插入多条记录
- 随手记录-修改某条记录时,不使用数据库控件而用datareader
- Scott Mitchell 的ASP.NET 2.0数据教程之三十一::使用DataList来一行显示多条记录
- 使用dom4j和XMLHTTP轻松解决多条记录操作
- [Sql]使用触发器禁止创建后的修改动作
- 每次重启Tomcat后,使用Hibernate修改数据库的记录都会导致以前记录被删除的解决办法。
- 能否在表的触发器中当一记录变化修改另一记录
- php 用checkbox一次性删除多条记录的方法
- Scott Mitchell 的ASP.NET 2.0数据教程之三十一::使用DataList来一行显示多条记录
- 基类、接口的应用——表单控件:一次添加、修改一条记录,一次修改多条记录。(上)
- 【转】如何在 Visual Basic .NET 中使用 ADO.NET 检索和修改 Excel 工作簿中的记录
- 使用distinct在mysql中查询多条不重复记录值的解决办法
- Scott Mitchell 的ASP.NET 2.0数据教程之三十一::使用DataList来一行显示多条记录
- 使用MySQL存储过程连续插入多条记录
- Scott Mitchell 的ASP.NET 2.0数据教程之三十一::使用DataList来一行显示多条记录
- SQL使用触发器避免记录重复插入
- SQL使用触发器避免记录重复插入
- 如何在 Visual Basic .NET 中使用 ADO.NET 检索和修改 Excel 工作簿中的记录