基本的语法我都不写了,需要的各位可以去查下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 这两个临时表都会有数据,一个是旧的,一个是新的。
   
    如果你明白了这些,就可以处理日常遇到的问题啦
posted on 2008-07-03 16:02  沉默的心  阅读(1350)  评论(1编辑  收藏  举报