- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储过程、触发器和游标
数据库原理与应用教程―SQL Server 存储过程、触发器和游标 存储过程、触发器和游标 存储过程 触发器 游标 存储过程、触发器和游标 1存储过程 SQL Server 2005的存储过程(Stored Procedure)包含一些T-SQL语句并以特定的名称存储在数据库中。 可以在存储过程中声明变量、有条件地执行以及其他各项强大的程序设计功能。 存储过程、触发器和游标 1.1 存储过程概述 一种数据库对象 存储过程可以接受输入参数、输出参数,返回单个或多个结果集以及返回值,由应用程序通过调用执行。 SQL Server支持存储过程和系统过程。存储过程是独立存在于表之外的数据对象。可以由客户调用,也可以从另一个过程或触发器调用,参数可以被传递和返回,出错代码也可以被检验。 存储过程、触发器和游标 目标: 了解存储过程的优点 掌握如何创建存储过程(参数、返回值) 掌握如何调用存储过程 了解为什么需要触发器 理解触发器的工作原理 掌握如何使用inserted表和deleted表 掌握如何创建: INSERT触发器 UPDATE触发器 DELETE触发器 游标的基本更新 理解游标的使用步骤 存储过程、触发器和游标 1.1 存储过程概述 在性能方面,存储过程有如下优点: (1)预编译:存储过程预先编译好放在数据库内,减少编译语句所花的时间。 (2)缓存:编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的速度会有明显提高。 (3)减少网络传输:特别对于处理一些数据的存储过程,不必像直接用T-SQL语句实现那样多次传送数据到客户端。 (4)更好的利用服务器内存:特别对于处理中间数据量不大的情况,存储过程中可以利用存放在内存的表变量。 存储过程、触发器和游标 1.1 存储过程概述 一般来讲,应使用SQL Server中的存储过程而不使用存储在客户计算机本地的 T-SQL 程序,其优势主要表现在: (1)允许模块化程序设计。 (2)允许更快速地执行。 (3)减少网络流量。 (4)可作为安全机制使用。 存储过程、触发器和游标 1.2存储过程的类型 1.系统存储过程 主要存储在master数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为数据库系统管理员管理SQL Server提供支持。 通过系统存储过程,SQL Server中的许多管理性或信息性的活动(如获取数据库和数据库对象的信息)都可以被顺利有效地完成。 存储过程、触发器和游标 1.2存储过程的类型 2.本地存储过程 本地存储过程也就是用户自行创建并存储在用户数据库中的存储过程,一般所说的存储过程指的就是本地存储过程。 用户创建的存储过程是由用户创建并能完成某一特定功能(如查询用户所需的数据信息)的存储过程。 存储过程、触发器和游标 1.2存储过程的类型 3.临时存储过程 临时存储过程可分为以下两种: (1)本地临时存储过程 不论哪一个数据库是当前数据库,如果在创建存储过程时,其名称以“#”号开头,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程。 (2)全局临时存储过程 不论哪一个数据库是当前数据库,只要所创建的存储过程名称是以两个“#”号开头,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程。 存储过程、触发器和游标 1.3 创建存储过程 1.在SQL Server Management Studio中创建存储过程 步骤如下: (1)打开SQL Server Management Studio,展开要创建存储过程的数据库,展开“可编程性”选项,可以看到存储过程列表中系统自动为数据库创建的系统存储过程。右键单击“存储过程”选项,选“新建存储过程”命令。 (2)出现创建存储过程的T-SQL命令,编辑相关的命令即可。 (3)命令编辑成功后,进行语法检查,然后单击“确定”按钮,至此一个新的存储过程建立成功。 存储过程、触发器和游标 1.3 创建存储过程 2.利用T-SQL语句创建存储过程 CREATE PROCEDURE创建存储过程,语法格式如下: CREATE { PROC | PROCEDURE } procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ [ OUT [ PUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION??| RECOMPILE , ENCRYPTION?} [ ,...n ] ] [FOR REPLICATION] AS
文档评论(0)