触发器的基本常识:我们在监控表中数据变化时会用到出发器,但是在一个表中执行批量插入或者修改时,我们会发现我们创建的简单的触发器所检测到的数据只有一条,其他数据监测不到了。这就需要我们在创建触发器时使用游标进行处理。
游标的基本概念:我们可以将游标理解成开辟的一块基于内存的临时表,表中记录了我们一个批次下插入的所有数据
而我们需要做的就是通过循环遍历将这些数据读取出来。
简单案例: 我们创建 person 和myperson两张表,通过创建出发器将person中的数据变化插入的myperson表中。
代码如下:
create trigger [dbo].[myTrigger]
on [dbo].[person]for insert
as
declare p_cursor cursor scroll for
//declar 声明游标 ,cursor 为游标的关键字 ,
open p_cursor //打开游标
declare @name varchar(20),@id int
fetch from p_cursor into @id,@name //fetch 关键字 取cursor中的数据
while @@FETCH_STATUS=0 //返回游标遍历的值,作为循环结束的条件
begin
insert into myPerson values (@name)
fetch next from p_cursor into @id,@name //取下一条数据,否则会死循环,按照顺序匹配字段值
end
close p_cursor //关闭游标
deallocate p_cursor //删除游标释放内存
最后
以上就是糟糕面包最近收集整理的关于sqlServer 基于游标创建出发器的全部内容,更多相关sqlServer内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复