Database 版 (精华区)

发信人: mm (绿色的梦), 信区: Database
标  题: 数据库技术专题(四)-----触发器(3)
发信站: 紫丁香 (Mon Sep 22 20:42:46 1997)


三 SYBASE数据库触发器
 
    SYBASE数据库触发器的作用与ORACLE非常类似,仅有较小的差异。
    SYBASE产生触发器的语法为:
    CREATE TRIGGER 触发器名
      ON 表名
      FOR INSERT,UPDATE,DELETE
      AS 
      SQL_statement |
      FOR INSERT,UPDATE
      AS
      IF UPDATE(column_name) [AND|OR UPDATE(column_name)]...
      SQL_statements
    上面FOR子句用来指定在触发器上的哪些数据更新命令可激活该
触发器。IF UPDATE子句检查对指定列的操作类型,在IF UPDATE子句
中可指定多个列。
    与ORACLE不同,对于每条SQL语句,触发器只执行一次。触发器
在数据更新语句完成以后立即执行。触发器和启动它的语句被当作一
个事务处理,事务可以在触发器中回退。
    下面举例说明SYBASE触发器的写法。
    create trigger forinsert_books
      on books
      for insert
      as
      if(select count(*) from auths,inserted
        where auths.author_code=insert.author_code)!=@@rowcount
      begin
        rollback transaction
        print "books 表中 author_code 列的值在auths 表中不存在。"
      end
--  
                _/     _/        _/     _/
               _/_/ _/_/        _/_/ _/_/
              _/  _/ _/        _/  _/ _/
             _/     _/        _/     _/
            _/     _/        _/     _/         

※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: space.hit.edu.c]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.348毫秒