SQL 触发器的使用

本文介绍了SQL触发器的基本创建方法及其应用场景,包括如何检查触发器的存在状态并进行相应的删除操作,创建触发器的不同选项(FOR、AFTER、INSTEAD OF),以及如何处理触发器内的插入、更新和删除操作。
基本的语法我都不写了,需要的各位可以去查下SQL联机丛书
我只写简单的应用及经验

1、代码:写触发器之前一般要判断该触发器是否存在,如果存在则要删除该触发器,这样可以保证脚本多次运行的时候没有问题。
同样适用于存储过程,但是不能勇于数据表,特别是当数据表有数据的时候。(我们曾经遇到过,一个成员修改数据库的时候,
重新生成了脚本,结果就把数据全部删掉了)
一般用  
     IF EXISTS (SELECT name FROM sys.objects  WHERE name = '触发器的名字' AND type = 'TR')
        DROP TRIGGER ’触发器名字‘;
    GO
2.创建:下边可以开始创建触发器
    Create Trigger 触发器名字 On 表
    FOR/INSTEAD OF/AFTER             ---这里有三个选项:
                                                    --  for是针对什么的触发,也就是当执行某些操作的时候触发(insert,update,delete)
                                                    --  after是再操作之后触发,也就是当某些操作执行完的时候触发(insert,update,delete)
                                                    --  instead of 是替换这些操作(insert,update,delete)
   Insert(, Update,delete)可以是一个或者多个的组合
    AS

       SQL语句
    GO
3. 处理
    如果是单独针对某个操作的触发器,则不用判断,否则就是要判断操作。
    在触发器里边,会有两个临时表供使用inserted 和deleted

    如果是insert 操作,则只会在inserted表里边有数据
    如果是delete操作,则只会在deleted表里有数据
    如果是update操作呢?这里要注意下,update操作的实质,也就是在SQL DBMS的内部,其实还是执行了
    两个操作,delete 和insert。所以,如果是update 这两个临时表都会有数据,一个是旧的,一个是新的。
   
    如果你明白了这些,就可以处理日常遇到的问题啦

转载于:https://www.cnblogs.com/neilvension/archive/2008/07/03/1234868.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值