我是靠谱客的博主 糟糕面包,这篇文章主要介绍sqlServer 基于游标创建出发器,现在分享给大家,希望可以做个参考。

触发器的基本常识:我们在监控表中数据变化时会用到出发器,但是在一个表中执行批量插入或者修改时,我们会发现我们创建的简单的触发器所检测到的数据只有一条,其他数据监测不到了。这就需要我们在创建触发器时使用游标进行处理。

游标的基本概念:我们可以将游标理解成开辟的一块基于内存的临时表,表中记录了我们一个批次下插入的所有数据

             而我们需要做的就是通过循环遍历将这些数据读取出来。

简单案例: 我们创建 person 和myperson两张表,通过创建出发器将person中的数据变化插入的myperson表中。

      代码如下:

create trigger [dbo].[myTrigger]

on [dbo].[person]
for insert
as

declare p_cursor cursor scroll for

//declar 声明游标 ,cursor 为游标的关键字 ,

select id ,name from inserted;  //出发器检测的数据
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部