触发器的使用

ALTER TRIGGER [dbo].[IsFull] ON [dbo].[BorrowBid] 
FOR UPDATE
AS
declare @AlsoNeedAmount decimal(18,2)
declare @GurantFlag int
declare @AlsoNeedGurantAmount decimal(18,2)

select  @AlsoNeedAmount=AlsoNeedAmount,@GurantFlag=GurantFlag,@AlsoNeedGurantAmount=AlsoNeedGurantAmount from BorrowBid where BorrowBidID=(select BorrowBidID from inserted)
if(@GurantFlag=1)--担保标
    begin
        if(@AlsoNeedAmount=0 and @AlsoNeedGurantAmount=0)
           update BorrowBid set  FullFlag=1 where BorrowBidID=(select BorrowBidID from inserted)
    end
else--非担保标
    begin
  if(@AlsoNeedAmount=0)
     update BorrowBid set  FullFlag=1 where BorrowBidID=(select BorrowBidID from inserted)
    end

--inserted,deleted是在触发器中使用的两个临时表,
--当执行insert操作时,在inserted中存储着当前插入的记录,

在执行delete操作时,在deleted中存储着当前删除的记录,

当执行update时,在inserted中存储着修改后的记录,在deleted中存储着修改前的记录。

时间: 2024-10-13 02:19:37

触发器的使用的相关文章

Oracle数据库——触发器的创建与应用

一.涉及内容 1.理解触发器的概念.作用和类型. 2.练习触发器的创建和使用. 二.具体操作 (实验) 1.利用触发器对在scott.emp表上执行的DML操作进行安全性检查,只有scott用户登录数据库后才能向该表中执行DML操作.(第1题中,user是系统函数,返回当前用户.字符串中使用两个单引号表示一个单引号.) 要求:分别以system用户和scott用户对emp 表执行DML操作,试验触发器的运行效果. (1)在scott用户下创建触发器 语句: create or replace t

Mysql中的触发器

阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增.删.改操作记录 弊端 什么是触发器 简单的说,就是一张表发生了某件事(插入.删除.更新操作),然后自动触发了预先编写好的若干条SQL语句的执行: 特点及作用 特点:触发事件的操作和触发器里的SQL语句是一个事务操作,具有原子性,要么全部执行,要么都不执行: 作用:保证数据的完整性,起到约束的作用: 例子:创建触发器,记录表的增.删.改操作记录 接下来将创建user和user_history表,以及三个触发器tri_insert_u

oracle(sql)基础篇系列(五)——PLSQL、游标、存储过程、触发器

  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00

information_schema系列五(表,触发器,视图,存储过程和函数)

这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:TABLES TABLES这张表毫无疑问了,就是记录的数据库中表的信息,其中包括系统数据库和用户创建的数据库.而TABLESPACES 却是标注的活跃表空间. 看一下TABLES 的记录关于TEST1表: 其实我们通过show table status like 'test1'\G;可以看到相同的信息. TABLE_TYPE这列有两种类型,分别是BASE TAB

触发器和存储过程

触发器和存储过程   1.触发器   在进行dml操作的时候(insert,update,delete),可以对事件进行监听和响应,这种机制在数据库中叫做触发器.   触发器与永久性表关联,只能建在永久性表上面,不能是temporary表或view,且只有insert,update,delete三种事件.   mysql -u root -paixocm   show triggers;   show triggers\G;mysql> delimiter // ====改结束符   自动在内存

oracle 触发器

触发器--启动触发器alter trigger schema_trigger enable;--禁用触发器alter trigger schema_trigger disable;--删除触发器DROP TRIGGER COMPONT_GIS_TEM; 这个触发器是为了增加部件时,同步更新部件的缓存表,缓存表是为了在拿gis数据时,不用再联表查询街道.社区.大类的名称了缓存表中的sequence是  COMPONT_GIS_TEM_SEQ加入触发器的语句是CREATE OR REPLACE TR

mysql触发器

这两天写项目,有个要求是记录用户登录登出操作,把这些操作写到日志表里去,我觉得这个功能用MySQL的触发器来写,更方便一些,所以在这整理了一下这一过程. 在这里,我就不把项目的所以代码都粘贴过来了,项目用的是hibernate,这里我创建两个简单的表来演示一下这个过程. 1:登录表,记录用户的账号,密码以及在线状态,0表示不在线,1表示在线.对status进行默认约束,默认值就是0. create table login( id int not null primary key auto_inc

触发器使用教程和命名规范

目  录 触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6,例三:INSTEAD OF触发器 6 7,例四:语句级触发器之一 8 8,例五:语句级触发器之二 9 9,例六:用包封装触发器代码 10 10,触发器命名规范 11 1,触发器简介 触发器(Trigger)是数据库对象的一种,编码方式类似存储过程,与某张表(Table)相关联,当有DML语句对表进行操作时,可以引起触发器的执 行

20151016触发器

--触发器:一种特殊的存储过程,通过对数据库表操作的动作,来触发,增删改select *from studentselect *from scoreselect *From fruit drop trigger shanchu--第一种触发器 当某个动作之后触发alter trigger xiugaion Fruitafter update --修改之后的动作as select *From inserted --inserted 表示变动的那一行属性go update Fruit set Num

SQLServer与Oracle的数据同步(触发器trigger)

说到同步,其实是靠"作业"定时调度存储过程来操作数据,增,删,改,全在里面,结合触发器,游标来实现,关于作业调度,使用了5秒运行一次来实行"秒级作业",这样基本就算比较快的"同步" 做的是SQL Server往Oracle端同步,先在sql server上建立往Oracle端的链接服务器,我用一个视图"封装"了一下链接服务器下的一张表. create view v_ora_PUBLISHLASTREC as select *