触发器的创建和管理.docx

上传人:sk****8 文档编号:3077522 上传时间:2019-05-20 格式:DOCX 页数:4 大小:18.39KB
下载 相关 举报
触发器的创建和管理.docx_第1页
第1页 / 共4页
触发器的创建和管理.docx_第2页
第2页 / 共4页
触发器的创建和管理.docx_第3页
第3页 / 共4页
触发器的创建和管理.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验图书馆日常事务管理系统触发器的创建和管理1.创建触发器(1)使用 SSMS 建触发器在 TSJYMS 数据库的图书类别表上创建一个名为 tslb_insert_trigger 的触发器,当执行INSERT 操作时,该触发器被触发,禁止插入记录。CREATE TRIGGER tslb_insert_trigger ON 图书类别FOR INSERTASBEGINPRINT(禁止插入记录!)ROLLBACK TRANSACTIONEND(2)使用 T-SQL 语句创建触发器 在 TSJYMS 数据库的图书明细表上创建一个名为 ts_delete_trigger 的触发器,当执行 DELETE

2、操作时,该触发器被触发,禁止删除记录。CREATE TRIGGER ts_delete_trigger ON 图书明细表FOR DELETEASBEGINPRINT(禁止删除记录!)ROLLBACK TRANSACTIONEND 在 TSJYMS 数据库的借还明细表上创建一个名为 jhmx_update_trigger 的触发器,当执行 UPDARE 操作时,该触发器被触发,不允许修改表中的图书编号。CREATE TRIGGER jhmx_update_trigger ON 借还明细表INSTEAD OF UPDATEASIF UPDATE(图书编号)PRINT(禁止删除记录!)2)多表级联更

3、改触发器的创建 在 TSJYMS 数据库的读者信息表上创建一个名为 dzxx_insert_trigger 的触发器,当在读者信息表中插入记录时,将该记录中的借书证号自动插入借还明细表中。CREATE TRIGGER dzxx_insert_trigger ON 读者信息FOR INSERTASDECLARE NUM CHAR(20)SELECT NUM =借书证号FROM INSERTEDINSERT 借还明细表(借书证号 )VALUES(NUM) 在 TSJYMS 数据库的图书明细表上创建一个名称为 tsmx_update_trigger 触发器,当修改图书明细表中的图书编号时,如果借还明

4、细表中引用了该图书编号,则禁止修改,并提示“不能修改!”CREATE TRIGGER tsmx_update_trigger ON 图书明细表FOR UPDATEASIF UPDATE(图书编号)BEGINDECLARE BIANHAO CHAR(20)SELECT BIANHAO =DELETED.图书编号FROM DELETEDIF EXISTS (SELECT 图书编号 FROM 借还明细表 WHERE 图书编号=BIANHAO)BEGIN PRINT(用户不能修改!)ROLLBACK TRANSACTIONENDELSEPRINT(修改完成!)END3)触发器功能验证对所创建的各种触发

5、器进行功能验证,检查其设计的正确性。tslb_insert_trigger验证代码:INSERT 图书类别VALUES(3333,3333)ts_delete_trigger验证代码:DELETE 图书明细表WHERE 图书名称= 文化苦旅jhmx_update_trigger验证代码:UPDATE 借还明细表SET 图书编号=12121212 WHERE 图书编号=29307142 dzxx_insert_trigger验证代码:INSERT 读者信息(借书证号,姓名,性别)VALUES(0312111002,张娜,女)tsmx_update_trigger验证代码:UPDATE 图书明细表

6、SET 图书编号=12121212 WHERE 图书编号 =990118184)查看触发器 通过 SSMS 查看图书明细表上的触发器。 使用系统存储过程 sp_help、sp_helptext、sp_depends 查看读者信息表上的dzxx_insert_trigger 触发器,使用 sp_helptrigger 查看图书明细表上的所有触发器类型。EXEC sp_help dzxx_insert_triggerEXEC sp_helptext dzxx_insert_triggerEXEC sp_depends dzxx_insert_triggerEXEC sp_helptrigger 图

7、书明细表5)修改触发器修改 TSJYMS 数据库中图书类别表上建立的 tslb_insert_trigger 的触发器,当执行INSERT、UPDATE 操作时,该触发器被触发,自动发出报警信息“禁止插入和修改!” 。ALTER TRIGGER tslb_insert_trigger ON 图书类别FOR INSERT,UPDATE AS BEGIN PRINT(禁止插入和修改!)ROLLBACK TRANSACTION END6)触发器的禁止或启用禁止或启用 TSJYMS 数据库中借还明细表上创建的 jhmx_update_trigger 的触发器。ALTER TABLE 借还明细表 DIS

8、ABLE TRIGGER jhmx_update_triggerALTER TABLE 借还明细表 ENABLE TRIGGER jhmx_update_trigger7)删除触发器(1)使用 SSMS 删除删除图书类别表上的触发器。表,触发器,右击,删除(2)使用 T-SQL 语句删除使用 T-SQL 语句删除图书明细表上的所有触发器。DROP TRIGGER tsmx_update_triggerSQL Server 用户定义函数的创建。(1)创建一个自定义函数 age(),根据某读者的出生日期返回该读者的年龄。CREATE FUNCTION AGE(BIRTH DATETIME)RETU

9、RNS TABLE AS RETURN (SELECT YEAR(GETDATE()-YEAR(出生日期) AS 年龄 FROM 读者信息 WHERE 出生日期=BIRTH)调用:SELECT * FROM AGE(1989-08-18)(2)创建一个自定义函数 book_info(),根据图书编号返回该书的书名、出版社和库存数。CREATE FUNCTION BOOK_INFO(BIAOHAO CHAR(10)RETURNS TABLEASRETURN( SELECT 图书名称, 出版社,库存数 FROM 图书明细表WHERE 图书编号 =BIANHAO)调用:SELECT * FROM B

10、OOK_INFO(00000746)(3) 创建一个自定义函数 read_info(),根据借书证号返回该读者借书的情况。CREATE FUNCTION read_info(NUM CHAR(10)RETURNS TABLEASRETURN( SELECT * FROM 图书借阅明细表WHERE 图书编号 =num)调用:SELECT * fFROM read_info( 29307142 )(3)修改自定义函数 age(),根据某读者的借书证号返回该读者的年龄。ALTER FUNCTION AGE(NUM INT)RETURNS TABLE AS RETURN (SELECT YEAR(GETDATE()-YEAR(出生日期) AS 年龄 FROM 读者信息 WHERE 借书证号 =NUM)调用:SELECT * FROM AGE(00000746)(5)删除自定义函数 age()DROP FUNCTION age

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。