• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 英语学习 > 正文

    SQL,Server触发器在数据库综合性实验中的应用:数据库实验七触发器

    时间:2019-03-30 03:32:55 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:以“学生成绩管理系统”为例,阐述了SQL Server触发器在开发数据库应用系统时,保证数据参照完整性及级联操作方面的应用。  关键词:SQL Server;触发器;综合性实验
      中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)16-3773-02
      Applications of SQL Server Triggers on the Comprehensive Experiment of the Database
      DONG Shao-yun , LI Ping, MAO Wei, GAO Jiang-tao, ZHANG Yun-fei
      (College of Computer Science & Engineering,Qujing Normal University,Qujing 655011,China)
      Abstract: Taking the case of“management system of student’s achievement”,describes the applications of the SQL Serve triggers in the de velopment of database application systems to ensure that referential integrity and cascade operation in the application.
      Key words: SQL Server; trigger; comprehensive experiment
      触发器是用户定义在表上的一类特殊的存储过程,它是开发数据库应用系统的重要技术。触发器常常用于数据库应用系统的强制业务规则和数据完整性方面,可以通过级联的方式对相关的表进行修改。[1]当在数据库的表上发生数据插入或更新操作时,SQL Server将自动执行触发器,保证表中数据的参照完整性约束。
       1触发器的功能及原理
      触发器在保证数据完整性方面具有如下功能:
      1)可以禁止违反数据完整性的插入和更新。
      2)可以通过级联方式对相关表进行更新,更新被参照表时会自动修改参照表中的数据。
      根据对表中数据的更新动作,触发器可以分为更新触发器、插入触发器和删除触发器。根据触发器生效的时间,触发器可以分为INSTEAD OF触发器、AFTER触发器。
      建立触发器时,可以引用SQL Server提供的deleted表和inserted表。删除数据时,deleted表中存放已经删除的值。插入数据时,inserted表中存放新插入的值。修改数据时,deleted表中存放原值,inserted表中存放修改后的值。
      一个触发器与定义触发器的表、激活动作、触发动作三个部分相关。
       2触发器的应用
      “学生成绩管理系统”数据库中包括三张表:学生表(学号,姓名,性别,出生日期,已修学分),课程表(课程号,课程名,先修课,学分),成绩表(学号,课程号,成绩)。学生表的主码是学号,课程表的主码是课程号,成绩表的主码由学号和课程号组成。
      2.1保证参照完整性
      向成绩表中添加记录时,需检查学生表中是否有该学生信息,以及课程表中是否开设该门课程。若没有,则不允许插入。可以在成绩表上建立插入触发器,保证参照完整性约束。代码如下:
      create trigger scinsert on成绩表instead of insert
      as
      If not exists(select * from inserted,学生表where inserted.学号=学生表.学号) or not exists(select * from inserted,课程表where inserted.课程号=课程表.课程号) begin
      print ’无法插入信息!’
      rollback transaction
      end
      2.2级联更新数据
      修改课程表的课程号时,如果该课程被学生选修,需要同时修改成绩中的课程号。可以在课程表上建立修改触发器,实现级联修改。代码如下:
      create trigger courseupdate on课程表after update as
      update成绩表
      set课程号=(select课程号from inserted) where课程号=(select课程号from deleted)
      2.3级联删除数据
      从学生表中删除学生记录时,也要把成绩表中该生的选课记录删除。可以在学生表上建立删除触发器,实现级联删除。代码如下:
      create trigger studelete on学生表
      after delete
      as
      delete成绩表where学号=(select学号from deleted)
      3结束语
      在开发数据库应用系统时,使用触发器对数据进行级联插入、修改或删除,可以保证数据的参照完整性,可以提高工作效率。
      参考文献:
      [1]崔巍.数据库系统及应用[M].北京:高等教育出版社,2003.
      [2]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.
      [3]张益星.SQL Server2000触发器技术及应用[J].信息技术,2005(10):69-71.
      [4]赵辉,陆冷飞. SQL触发器在保持数据库完整性中的应用[J].电脑开发与应用,2007,20(3):43-45.
      [5]王显梅. SQL Server触发器在学生管理系统中的应用[J].广西轻工业,2011(12):84-85.

    推荐访问:触发器 综合性 实验 数据库

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章