- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 存储过程与触发器的创建与维护 本章教学内容: 在大型数据库系统中,存储过程和触发器具有很重要的作用。 存储过程是SQL语句和控制流语句组成的集合; 触发器是一种特殊的存储过程; 9.1 概述 9.1.1 存储过程概述 9.1.2 触发器概述 9.1.1 存储过程概述 定义: 将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQL Server服务器通过过程名来调用它们,这些过程就叫做存储过程。 使用存储过程的优点: 实现了模块化编程。 可在单个存储过程中执行一系列SQL语句。 可从自己的存储过程内引用其他存储过程,简化复杂语句。 可能接受输入参数并返回输出值。 具有对数据库立即访问功能。 可以减少网络流量。 提高数据库的安全性。 存储过程既有参数又有返回值,其与函数的区别: 存储过程的返回值只是指明执行是否成功; 函数的返回值可直接被用在表达式中; 分类: 系统存储过程 扩展存储过程 用户自定义存储过程 系统存储过程: 由系统自动创建,主要存储在master数据库,一般以sp_作为前缀。 主要是从系统表中获取信息。 用于管理SQL Server和显示数据库和用户信息。 可以随时调用,不必在其前加上数据库名。 扩展存储过程: 属于动态链接库,SQL Server可以动态加载与执行,通常是C或C++语言写成的。 一般以xp_作为前缀。 用户自定义存储过程: 由用户创建并能完成某一特定功能的存储过程。 9.1.2 触发器概述 是一种特殊的存储过程。 存储过程是通过存储过程名被直接调用,触发器主要是通过事件进行触发而被执行。 是一个功能强大的工具,可使每个站点可在有数据修改时自动强制执行其业务规则。 可以用于完整性检查,可以实现更加复杂的数据完整性。 分类: After触发器 Instead of触发器 After触发器 在数据变动(insert、update、delete)完成以后才被触发。 只能在表上定义。 同一个数据表中可以创建多个After触发器。 Instead of触发器 在数据变动以前被触发,并取代数据的操作(insert、update、delete) ,而去执行触发器定义的操作。 可以在表或视图上定义。 关于触发器的规定: 只在触发它的语句完成后执行。 如果语句在表中执行违反条件约束或引起错误,触发器不会触动。 一个语句只能触动一次触发器。 9.2 存储过程 9.2.1 创建存储过程 9.2.2 管理存储过程 9.2.3 执行存储过程 9.2.4 删除存储过程 9.2.1 创建存储过程 使用方法: 使用向导 使用企业管理器 使用查询分析器 使用查询分析器: 不能将Create Procedure语句和其它SQL语句组合到单个批处理中 只能在当前数据库中创建存储过程 存储过程是数据库对象,必须遵守标识符规则 权限默认属于数据库所有者,该所有者可将此权限授予其他用户 创建存储过程的语法格式为: CREATE PROC[EDURE]procedure_name[;number] [{@parameter data_type}[VARYING][=default][OUTPUT]][,…n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FOR REPLICATION]AS sql_statement[…n] procedure_name:要创建的存储过程的名称。如果要创建全局临时存储过程,则需要在名称前面加##;如果要创建局部临时存储过程,则需要在名称前面加#。 number :用于对同名的过程进行分组的整数,以方便批量删除。 @parameter:语句中声明的参数,如果没有给参数定义默认值,则用户必须在执行过程时提供参数的值,最多可以有1024个参数。 Data_type:参数的数据类型。其中cursor数据类型只能用于OUTPUT参数,且必须同时指定VARYING 和OUTPUT关键字 VARYING:指定作为OUTPUT参数支持的结果集,仅使用于cursor。 Default:参数的默认值,必须是常量或NULL,可以包含通配符。 OUTPUT:表明参数将返回值。此值可以返回给EXEC[UTE]。 RECOMPILE:表示不在缓存中保存存储过程的执行计划。可以在使用临时值不希望覆盖缓存中的执行计划时使用。 ENCRYPTION:表示对存储在表syscomments中的存储过程文本进行加密,以防止其他用户查看或修改。 例9-1 创建包含SELECT语句的存储过程。 use 实例 go create procedure 查询表1 as
您可能关注的文档
- 3-类及对象的基本概念.ppt
- 第4节+目标规划-第3-5节.pdf
- LJ高密度三维地震资料处理实践及效果.pdf
- 教育部参赛_认识我们生存空间_诸锦娟.doc
- 第9章 存储过程及触发器.ppt
- Java面向对象程序设计(第2版)第18篇.ppt
- 第7篇 受压构件的截面承载力.ppt
- 10KV母联柜结构原理和故障查询.pptx
- 我国高等体育专业教育同质化和特色化发展_杨小永.pdf
- 汽车ECU标定系统CCP软件实现.pdf
- 2023年新华社招考应届高校毕业生【108人】笔试参考题库附带答案详解.doc
- 2024年08月安徽合肥庐江县级公立医院招聘社会化用人部分岗位招聘笔试历年专业考点(难、易错点荟萃)附带答案详解 .doc
- 2024年08月安徽叶集区乡镇卫生院编制周转池招聘20人笔试历年专业考点(难、易错点荟萃)附带答案详解 .doc
- 2025年中考数学复习分类汇编:概率(38题)学生版+解析.pdf
- 2024年08月安徽合肥市骨科医院劳务派遣形式招聘护理岗位拟聘人员笔试历年专业考点(难、易错点荟萃)附带答案详解 .doc
- 2024年08月安徽安庆望江县县域医共体成员单位公开招聘86人笔试历年专业考点(难、易错点荟萃)附带答案详解 .doc
- 2023年新疆中新建煤炭产业有限责任公司社会化招聘笔试参考题库附带答案详解.doc
- 2023年扶余粮食集团有限公司公开招聘所属公司工作人员笔试参考题库附带答案详解.doc
- 2025年中考数学二轮复习:解直角三角形的应用(解答题).pdf
- 2024年中式面点师(初级)新版试题及答案.docx
文档评论(0)