Ch08-存储过程及触发器.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络数据库开发技术 存储过程和触发器 什么是存储过程 SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务,这种方法就是存储过程。 存储过程的类型 存储过程 存储过程与函数的比较 函数与存储过程基本类似,调用时函数要用表达式方式,而存储过程不能直接调用,必须采用“EXEC 存储过程名”或“CALL 存储过程名”。 创建存储过程 在SQL Server中,可以使用三种方法创建存储过程 : ①使用创建存储过程向导创建存储过程。 ②利用SQL Server 企业管理器创建存储过程。 ③使用Transact-SQL语句中的CREATE PROCEDURE命令创建存储过程。 用户存储过程的创建与执行 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 存储过程 用户存储过程的编辑修改 用户存储过程的删除 存储过程的安全性—示例 假定EMP表是某用户USER1的私有表,用户SCOTT是开发者,最终用户GREEN,现在要求GREEN只能通过SCOTT创建的存储过程HIRE_EMP存取EMP表,该存储过程查询或插入雇员记录.从USER1用户环境下,为SCOTT用户授予对EMP表的相应权限。 解:GRANT SELECT,INSERT,UPDATE,DELETE ON EMP TO SCOTT; SCOTT一旦创建完HIRE_EMP过程,给GREEN用户授予对该过程的EXECUTE权限. GRANT EXECUTE ON HIRE_EMP TO GREEN; 使用系统存储过程来查看存储过程 sp_help:用于显示存储过程的参数及其数据类型 sp_help [[@objname=] name] 参数name为要查看的存储过程的名称。 sp_helptext:用于显示存储过程的源代码 sp_helptext [[@objname=] name] 参数name为要查看的存储过程的名称。 sp_depends:显示和存储过程相关的数据库对象 sp_depends [@objname=]’object’ 参数object为要查看依赖关系的存储过程的名称。 sp_stored_procedures:用于返回当前数据库中的存储过程列表 触发器 触发器是一种特殊的存储过程,它在特定语言事件发生时自动执行,通常用于实现强制业务规则和数据完整性。 触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。 触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。 触发器主要优点 触发器是自动的:当对表中的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。 触发器可以通过数据库中的相关表进行层叠更改。 触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。 利用SQL命令创建触发器 利用SQL命令创建触发器 利用SQL命令创建触发器 利用SQL命令创建触发器 利用SQL命令创建触发器 利用SQL命令创建触发器 利用SQL命令创建触发器 利用企业管理器创建触发器 触发器的修改 触发器的修改 触发器的删除 sp_help、sp_helptext和sp_depends具体用途和语法形式 sp_help:用于查看触发器的一般信息,如触发器的名称、属性、类型和创建时间。 sp_help ‘触发器名称’ sp_helptext:用于查看触发器的正文信息 sp_helptext ‘触发器名称’?????? sp_depends:用于查看指定触发器所引用的表或者指定的表涉及到的所有触发器。 sp_depends ’触发器名称’ sp_depends ‘表名’ 附例:用户登录验证 CREATE PROC upUserLogin @strLoginName NVARCHAR(20), @strLoginPwd NVARCHAR(20), @blnReturn BIT OUTPUT AS -- 定义一个临时用来保存密码的变量 DECLARE @strPwd NVARCHAR(20) BEGIN -- 从表中查询当前用户的密码,赋值给 @strPwd 变量,下面要对它进行比较 SELECT @strPwd=uLoginPwd FROM uUser WHERE uLoginName=@strLoginName IF @strLoginPwd = @strPwd

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档