`

触发器设计技巧和实例

阅读更多

 触发器设计技巧和实例

在数据库设计中,有两种方法可设定自动化的资料处理规则,一种是条件约束,
一种是触发器,一般而言,条件约束比触发器较容易设定及维护,且执行效率较
好,但条件约束只能对资料进行简单的栏位检核,当涉及到多表操作等复杂操
作时,就要用到触发器了.
      一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别
 是:
                 虚拟表inserted                    虚拟表deleted

在表记录新增时   存放新增的记录                        不存储记录
        修改时   存放用来更新的新记录                  存放更新前的记录
        删除时   不存储记录                            存放被删除的记录
 
      触发器的种类及触发时机
 after触发器:触发时机在资料已变动完成后,他将对变动资料进行必要的
              善后和处理,若发现有错误,则用事务回滚(rollback transaction)
              将此次操作所更动的资料全部回复。
 istead of 触发器:触发时机在资料变动前发生,且资料怎么变动取决于触发器

目前介绍一下创建触发器的编写格式:

after类型:
    create trigger  触发器名称
    on 表名
    after 操作(insert,update)
    as 
      sql语句

instead类型
    create trigger 触发器名称
    on 表名
    instead of 操作(update,delete)
    as
      sql语句

实例1:
     在订单(表orders)中的订购数量(列名为num)有变动时,触发器会先到客户(表customer)中
取得该用户的信用等级(列名为level),然后再到信用额度(creit)中取出该等级
许可的订购数量上下限,最后比较订单中的订购数量是否符合限制。

代码:         
           create  trigger num_check
           on orders
           after insert,update
           as
           if update(num)
             begin
               if exists(select a.* from orders a join customer b on a.customerid=b.customerid
                                                  join creit c on b.level=c.level
                                                  where a.num between c.up and c.down)
               begin
                  rollback transaction
                  exec master..xp_sendmail administrator,客户的订购数量不符合限制
               end  
             end 
实例2:
      有工资管理系统中,当公司对某员工甲的月薪进行调整时,通常会先在表员工中修改薪资列,然后在
      表员工记录中修改薪资调整时间和薪资
           
          create trigger compensation
          on 员工
          after update
          as
            if @@rowcount=0 return
            if update(薪资)
               begin
                 insert 员工记录
                 select 员工遍号,薪资,getdate()
                 from inserted
               end

分享到:
评论

相关推荐

    SQL触发器实例讲解

    使用触发器时需谨慎,因为过度使用或不恰当的触发器设计可能导致性能问题,使得数据库操作变得复杂且难以维护。因此,应尽量保持触发器的数量最少,并确保其逻辑清晰、高效。 在"SQL触发器实例讲解1.doc"和"SQL...

    电子设计资料_施密特触发器.zip

    《电子设计:深入理解施密特触发器》 在电子设计领域,施密特触发器是一种重要的数字逻辑门电路,其独特的输入特性使得它在信号...理解并熟练掌握施密特触发器的工作原理和设计技巧,对于提升电子设计技能至关重要。

    单相相位触发器TC782A的设计及应用.rar

    阅读这份文档,你将获得关于TC782A的理论知识、设计技巧以及详细的实验数据,这对于理解和掌握单相相位触发器的实际应用是十分有价值的。 总的来说,单相相位触发器TC782A是一个功能强大的电路组件,其设计和应用...

    SQL Server触发器在数据库设计中的应用.pdf

    合理的触发器设计应该遵循最小权限原则、避免在触发器内部执行耗时操作,同时应该确保触发器内部逻辑的正确性和高效性。在对数据库进行设计时,应该充分考虑到触发器的使用,以及它们如何与数据库中的其他对象,如...

    触发器实例

    通过以上分析,我们不仅了解了如何在Oracle数据库中创建一个简单的触发器,而且还掌握了触发器的一些基本概念和使用技巧。触发器是数据库管理系统中一个非常强大的特性,合理地利用它可以极大地提高数据处理的效率和...

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    在高级编程中,触发器可以用来创建复杂的业务逻辑,如级联更新、审计跟踪、事务控制等,但需要注意的是,过度使用触发器可能导致性能问题,因此需要谨慎设计和使用。 其次,存储过程(Stored Procedures)是一组...

    触发器实例讲解--很多的很经典的资料

    本资料集中的实例涵盖了各种触发器应用场景,通过实际操作,读者可以深入理解触发器的工作机制,并掌握其在实际项目中的应用技巧。 总结来说,数据库触发器是实现业务规则和数据完整性的有力工具,但使用时需谨慎,...

    oracle触发器案例

    ### Oracle 触发器案例详解 #### 概述 触发器是数据库中一种特殊类型的存储过程,它在特定的数据操作语言(DML)事件发生时自动执行。...通过这些示例,我们可以更好地理解和掌握触发器的设计与编写技巧。

    实用技能触发器制作PPT学习教案.pptx

    通过案例演示,我们可以看到如何使用触发器来设计各种互动环节,如填空题、选择题和色彩涂鸦活动。 例如,在"看分数涂颜色"的案例中,学生可以通过点击正确的答案来触发相应的反馈,如“答对了,你真棒!”的鼓励...

    FPGA数字电子系统设计与开发实例导航(随书源代码)

    《FPGA数字电子系统设计与开发实例导航》是一本深入探讨FPGA(Field-Programmable Gate Array)技术的专业书籍,旨在通过丰富的实例帮助读者掌握FPGA的设计与开发技巧。随书附带的源代码提供了实际操作的平台,让...

    三触发器应用电路的制作PPT学习教案.pptx

    - 抢答器电路是一个典型的触发器应用案例,它利用触发器的瞬间响应能力和记忆功能,来决定哪位选手首先按下按钮并正确响应问题。 综上所述,触发器是数字电子技术的基础元素,其各种类型和功能的理解对于设计和...

    电子通信设计资料单相相位触发器TC782A的设计及应用

    通过对TC782A单相相位触发器的设计原理及其在不同领域的具体应用进行深入探讨,我们不仅了解了该器件的基本特性和工作原理,还掌握了如何基于其特性进行有效设计的方法。TC782A凭借其出色的性能和广泛的适用性,在...

    数字逻辑课程设计--三位二进制模5计数器

    同时,设计过程也强调了实际操作和调试技巧,包括电路图的绘制、引脚编号的标注、集成电路的连接与测试。 设计步骤通常包括以下几点: 1. **分析逻辑功能**:首先,根据计数需求,确定计数器的初始状态和转换规则...

    王金明:《Verilog HDL程序设计教程》实例

    《Verilog HDL程序设计教程》是一本专为CPLD/FPGA初学者设计的教程,作者王金明以其丰富的教学经验,深入浅出地介绍了Verilog HDL这一硬件描述语言的基础知识和应用技巧。Verilog HDL是电子设计自动化(EDA)领域中...

    Verilog的135个经典设计实例.rar

    这个名为“Verilog的135个经典设计实例.rar”的压缩包文件显然是一个教学资源,包含了135个不同的Verilog设计案例,旨在帮助学习者深入理解和掌握Verilog语言的核心概念和实际应用。 1. **基础语法**:Verilog的...

    JKchufaqi.rar_FPGA JK_FPGA jk触发器_fpga的jk触发器

    在电子设计领域,FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,它允许用户根据自己的需求配置逻辑...通过深入理解和实践,你可以更熟练地掌握FPGA设计的技巧,为未来的数字系统设计打下坚实的基础。

    同步时序逻辑电路设计经典实例

    #### 四、设计技巧与注意事项 1. **时钟信号的稳定性**:确保时钟信号的质量对于同步时序逻辑电路的正常运行至关重要。应避免时钟信号出现毛刺现象。 2. **竞争冒险问题**:在设计过程中需要注意组合逻辑电路中可能...

    0279、单相相位触发器TC782A的设计及应用.zip

    "0279、单相相位触发器TC782A的设计及应用"这份资料可能包含详细的设计实例、电路图、应用电路以及调试技巧等内容,帮助读者深入理解TC782A的工作原理并成功将其应用于实际项目中。对于电子爱好者和专业工程师来说,...

    银行卡交易管理(触发器).

    总的来说,“银行卡交易管理”项目提供了一个学习和实践C#与数据库交互,特别是触发器应用的绝佳案例。通过这个项目,开发者不仅可以掌握C# WinForm应用开发的基本技巧,还能深入了解数据库触发器在实际业务中的应用...

Global site tag (gtag.js) - Google Analytics