网站大量收购闲置独家精品文档,联系QQ:2885784924

2025年数据库原理与应用(存储过程与触发器的应用).pdfVIP

2025年数据库原理与应用(存储过程与触发器的应用).pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载

《数据库原理与应用》实验报告

题目:实验七:存储过程与触发器的应用

···2025028

姓名:沈宇杰

···2025/5/30

实验预习情况:

一:实验目的:

①:掌握创建存储过程的方法和步骤

②:掌握存储过程的使用方法

③:掌握创建触发器的方法和步骤

④:掌握触发器的使用方法

二:实验内容:

①:存储过程的创建、执行和删除

②:触发器的创建、执行和删除

三:实验示例:

一:创建触发器:

对于STUDENT数据库,表STUDENT的CLASS_ID列与表CLASS的CLASS_ID满足下列参照完

整性规则:

7.1创建触发器

A.向STUDENT插入或修改一记录时,该字段在STUDENT表中的对应值也做相应的修改

B.修改CLASS表的CLASS_ID字段值时,该字段在STUDENT表中对应值也做相应的修改

C.删除CLASS表中一记录的同时删除该记录CLASS_ID字段值在STUDENT表中对应的记录

在查询分析器编辑窗口输入下列触发器的代码并执行。

①:向STUDENT表中插入或修改一记录时,通过触发器检查记录的CLASS_ID值在CLASS表

中是否存在,若不存在,则取消插入或删除操

CREATETRIGGERSTUDENTINSONDBO.STUDENT

FORINSERT,UPDATE

ASBEGIN

IF(SELECTINS.CLASS_IDFROMinsertedINS)NOTIN

(SELECTCLASS_IDFROMCLASS)

ROLLBACK

END

GO

AFTER指定DML触发器仅在触发SQL语句中指定的所有操作都已成功执行时才被触发。

所有的引用级联操作和约束检查也必须在激发此触发器之前成功完成。

学而不知道,与不学同;知而不能行,与不知同。——黄睎

如果仅指定FOR关键字,则AFTER为默认值。

不能对视图定义AFTER触发器。

注意:书上的P162页的语法和SQLSERVER2008中的语法可能不大一样,SQLSERVER2008中

并没有BEFORE、FOREACHROW等关键字。且语法变动较大。

②:修改CLASS表的CLASS_ID字段时候,该字段在STUDENT表中的对应值也做相应修改

CREATETRIGGERCLASSUPDATEONDBO.CLASS

FORUPDATE

ASBEGIN

IF(COLUMNS_UPDATED()01)0

UPDATEStudent

SETCLASS_ID=(SELECTINS.CLASS_IDFROMINSERTEDINS)

WHERECLASS_ID=(SELECTCLASS_IDFROMDELETED)

END

GO

释:COLUMNS_UPDATED():返回一串二进制数,譬如:若要检查第2,3,4行是否被修改,则

计算:

2^(2-1)+2^(3-1)+2^(4-1)=14,然后COLUMNS_UPDATED()14即可。

此例题中01则代表了查看CLASS表中的第一行有无被修改。

SETCLASS_ID=(SELECTINS.CLASS_IDFROMINSERTEDINS)

WHERECLASS_ID=(SELECTCLASS_IDFROMDELETED

文档评论(0)

155****8565 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档