- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 实现存储过程
第9章 实现存储过程和触发器 9.1 存储过程 9.1.1 存储过程概述与分类 9.1.2 存储过程的创建与执行 9.1.3 存储过程的管理 9.1.1 存储过程概述与分类 9.1.1 存储过程概述与分类 存储过程的分类 系统存储过程 本地存储过程 临时存储过程 远程存储过程 扩展存储过程 9.1.2 存储过程的创建与执行 一、利用企业管理器创建存储过程 二、利用T-SQL命令创建存储过程 三、存储过程的执行 一、利用企业管理器 选中要创建存储过程的数据库→存储过程→ 例:利用企业管理器创建存储过程“max借书量”. 二、利用T-SQL命令创建存储过程 1.不带参数存储过程的创建与执行 1.不带参数存储过程的创建(续) 2.使用输入参数的存储过程的创建与执行 2.使用输入参数的存储过程的创建与执行(续) 3.使用默认参数值的存储过程的创建与执行 4.在存储过程中使用OUTPUT输出参数 5.存储过程的返回值 存储过程在执行后都会返回一个整型值(称为“返回代码”),指示存储过程的执行状态。如果执行成功,返回0;否则返回-1~-99之间的数值(例如-1表示找不到对象,-2表示数据类型错误,-5表示语法错误等)。也可以使用return语句来指定一个返回值。 9.1.3 存储过程的管理 存储过程的查看 存储过程的修改 存储过程的删除 1.查看存储过程 企业管理器查看 右击—所有任务--生成SQL脚本 使用系统存储过程查看 sp_help:用于显示存储过程的参数及其数据类型。 sp_helptext:用于显示存储过程的源代码。 sp_depends:用于显示和存储过程相关的数据库对象。 2.修改存储过程 选学:重命名存储过程 3.删除存储过程 利用企业管理器 使用drop命令 9.2 触发器 9.2.1 触发器的概述与分类 9.2.2 触发器的创建与使用 9.2.3 触发器的管理 9.2.1 触发器概述及分类 触发器的分类 AFTER 触发器 在触发操作执行后和处理完任何约束后激发。 可通过指定 AFTER 或 FOR 关键字来请求 AFTER 触发器。 AFTER触发器只能作用于基本表。 INSTEAD OF 触发器 代替触发动作进行激发,并在处理约束之前激发。 除了基本表以外,INSTEAD OF触发器也可以作用于视图,主要用来扩展视图支持的更新操作。 9.2.2 触发器的创建与使用 利用企业管理器创建触发器 选中表---右击---所有任务---管理触发器 利用T-SQL语句创建触发器 Inserted表与deleted表 这两个表的结构与触发器所作用的表的结构相同,但存放于内存中。 Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,原始行从触发器表中删除,并传输到 deleted 表中。 Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。 更新(update)事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。 执行insert语句时激活触发器 执行delete语句时激活触发器 思考: 9.2.3 触发器的管理 查看触发器 修改触发器 删除触发器 1.查看触发器 企业管理器查看 右单击触发器作用的表→管理触发器 使用系统存储过程查看 Sp_help: sp_helptext: Sp_depends: 2.修改触发器 如果需要修改触发器的定义和属性,有两种方法 ①先删除原有的触发器定义,然后再重新创建与之同名的触发器 ②直接使用修改命令修改触发器的定义 Alter trigger命令 3.删除触发器 利用企业管理器 利用Drop命令 Drop trigger 存储过程名 RAISERROR 返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。 语法 RAISERROR ( { msg_id | msg_str } { , severity , state }????[ , argument [ ,...n ] ] )????[ WITH option [ ,...n ] ] 参数 msg_id 存储于 sysmessages 表中的用户定义的错误信息。用户定义错误信息的错误号应大于 50,000。由特殊消息产生的错误是第 50
文档评论(0)