添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

需求概述:外部来数据后,要跟差值算法补充特定列的数值,处理完后通过触发器还要把新获得的数据转发出去。

设计了两个触发器,一个是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...