需求概述:外部来数据后,要跟差值算法补充特定列的数值,处理完后通过触发器还要把新获得的数据转发出去。
设计了两个触发器,一个是instead of触发器,负责在入库前查补数据;另外一个是alter触发器,负责入库后的数据转发出去;
由于外部来的数据很多是批量量的,因此在instead of触发器内需要配套一个游标循环
DECLARE cur_Insert cursor
for select stcd,tm,z,q,wptn,msqmt from inserted
open cur_Insert
fetch next from cur_Insert into @STCD,@TM,@Z,@Q,@WPTN,@MSQMT
while @@FETCH_STATUS =0
begin
--调用查补数据的数据库自定义函数
select @@fetch_status --结束之前要预读一次才知道结束没有,不这样写,就会导致最后一次遍历执行两次
fetch next from cur_Insert into @STCD,@TM,@Z,@Q,@WPTN,@MSQMT
需求概述:外部来数据后,要跟差值算法补充特定列的数值,处理完后通过触发器还要把新获得的数据转发出去。设计了两个触发器,一个是instead of触发器,负责在入库前查补数据;另外一个是alter触发器,负责入库后的数据转发出去;由于外部来的数据很多是批量量的,因此在instead of触发器内需要配套一个游标循环 DECLARE cur_Insert...
游标(cursor)是一个存储在DBMS服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。
使用游标
使用游标的步骤:
在使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,它只是定义要使用的SELECT语句和游标选项。一旦声明,就必须打开游标以供使用。这个过程用前面定义的SELECT语句把数据实际检索出来。对于填有数据的游标,根据需要取出(检索)各行。在结束游标使用时,必须关闭游标,可能的话,释放游标(有赖于具体的DBMS)。声明游标后,可根据需要频繁地打开和关闭游标。在游标打开时,可根据需要频
SQL Server遍历表一般都要用到游标,SQL Server中可以很容易的用游标实现循环,实现SQL Server遍历表中记录。本文将介绍利用使用表变量和游标实现数据库中表的遍历。 表变量来实现表的遍历 以下代码中,代码块之间的差异已经用灰色的背景标记。 代码如下: DECLARE @temp TABLE ( [id] INT IDENTITY(1, 1) , [Name] VARCHAR(10) ) DECLARE @tempId INT , @tempName VARCHAR(10) INSERT INTO @temp VALUES ( ‘a’ ) INSERT INTO @temp
1、每一次insert,update,delete都会触发触发器;
2、每一次的insert,update,delete可能有n条数据。
例如SQL语句update table-name set XXX=XXX where Id>=30
这种情况我们熟称批量处理,此时inserted和deleted里面确实会有30条数据(假设Id从1开始自增加),但
只能用于存储过程
由前几章可知,mysql检索操作返回一组称为结果集的行。都与mysql语句匹配的行(0行或多行),使用简单的SELECT语句,没有办法得到第一行、下一行或前10行,也不存在每次行地处理所有行的简单方法(相对于成批处理他们)
有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。游标(cursor)是一个存储在MYSQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或
触发器是一种自动执行特定操作的结构,当对数据进行UPDATE,INSERT,DELECT的操作时触发器就会执行。
SQLserver支持DML(响应数据操作语言操作数据事件),DDL(响应数据定义语言事件),登录触发器(响应LOGON事件)三种触发器。
触发器的创作语句——GREAT TRIGGER参数详见下图
删除触发器语句——DROP TRIGGER 触发器名;
触发器有两种类型:前触发器(使用FOR或AFTER选项)和后触发器(使用INSTEAL OF选项)
六.触发器的用途
1.触发器的介绍:
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
七.SQ...