数据库实验5 存储过程和触发器.pdfVIP

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

实验五存储过程和触发器

一、实验目的

(1)通过实践理解存储过程和触发器的概念、作用及优点;

(2)掌握存储过程的定义与调用,实现存储过程中带有不同参数的应用;

(3)掌握创建触发器。

二、实验原理

1.存储过程

一个被命名的存储在服务器上的T-SQL语句的集合,是封装重复性工作的一种方法。

(1)创建存储过程

CREATEPROC[DURE]PROCDURE_NAME[{@PARAMENTDATA_TYPE}

[VARYING][=DEFAULT][OUTPUT]][,…N1]

ASSQL_STATEMENT

PROCEDURE_NAME:新存储过程的名称,必须符合标识符规则且唯一。

@PARAMETER:过程中的参数。可以声明一个或多个参数。用户必须在执行过程时提供每

个所声明参数的值(除非定义了该参数的默认值)。使用@符号作为第一个字符来指定参数

名称。参数名称须符合标识符规则。每个过程的参数仅用于该过程本身;相同的参数名称可

用在其它过程中。默认情况下参数只能代替常量,不能代替表名、列名或其它数据库对象名

称。

DATA_TYPE:参数的数据类型。

DEFAULT:参数的默认值。如果定义了默认值,不必指定该参数的值即可执行过程。默认

值必须是常量或NULL。

OUTPUT:表明参数是返回参数。该选项的值可以返回给EXEC[UTE]。使用OUTPUT参数

可将信息返回给调用过程。

(2)执行存储过程

SQLSERVER系统中,可以使用EXECUTE语句执行存储过程。EXECUTE语句也可以简写为

EXEC。如果将要执行的存储过程需要参数,那么应该在存储过程名称后面带上参数值。

[EXEC[UTE]]{[@RETURN_STATUS=]

{PROCEDURE_NAME[;NUMBER]|@PROCEDURE_NAME_VAR}

[@PARAMETER={VALUE|@VARIABLE[OUTPUT]|[DEFAULT]}

[,…N]

(3)删除存储过程

使用DROPPROCEDURE语句可永久地删除存储过程。

DROPPROCEDURE{PROCEDURE}[,…N]

2.触发器

一种特殊类型的存储过程,可实现自动化操作,主要是实现主键和外键所不能保证的复

杂的参照完整性和数据一致性。触发器与存储过程主要的区别在于触发器的运行方式。存储

过程必须由用户、应用程序或者触发器来显式地调用并执行,而触发器是当特定事件出现的

时候自动执行的,与连接到数据库中的用户或者应用程序无关。

(1)创建触发器

CREATETRIGGERTRIGGER_NAMEON{TABLE|VIEW}

{{{FOR|AFTER|INSTEADOF}{[INSERT][,][UPDATE]}

ASSQL_STATEMENT[...N]}}

TRIGGER_NAME:触发器的名称。

TABLE|VIEW:在其上执行触发器的表或视图,有时称为触发器表或触发器视图。

AFTER:指定触发器只有在触发SQL语句中指定的所有操作都已成功执行后才激发。如果

仅指定FOR关键字,则AFTER是默认设置。

INSTEADOF:指定执行触发器而不是执行触发SQL语句,从而替代触发语句的操作。

{[DELETE][,][INSERT][,][UPDATE]}:是指定在表或视图上执行哪些数据修改语

句时将激活触发器的关键字。必须至少指定一个选项。在触发器定义中允许使用以任意顺序

组合的这些关键字。如果指定的选项多于一个,需用逗号分隔这些选项。

AS:是触发器要执行的操作。

SQL_STATEMENT:是触发器的条件和操作。触发器条件指定其它准则,以确定DELETE、

INSERT或UPDATE语句是否导致执行触发器操作。当尝试DELETE、INSERT或UPDATE操作

时,TRANSACT-SQL语句中指定的触发器操作将生效。

N:是表示触发器中可以包含多条TRANSACT-SQL语句的占位符。

(2)删除触发器

DROPTRIGGER{TRIGGER}[,…N]

三、实验示例

1.存储过程的应用

【例1】使用不带

文档评论(0)

186****4901 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档