数据库系统概论-第8章-存储过程的操作与管理.ppt
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【存储过程概述】 存储过程是数据库管理系统中一种预先编译好的、可重复使用的SQL语句集合,它封装了特定的功能,以供用户或应用程序调用。存储过程在数据库服务器上注册,具有诸多优势: 1. **安全性**:存储过程可以设置权限和所有权链接,甚至可以与证书关联,从而加强应用程序的安全性。 2. **模块化编程**:存储过程支持模块化设计,使得代码复用和管理更加便捷。 3. **延迟绑定**:作为命名代码,存储过程允许在调用时延迟绑定,提高了灵活性。 4. **网络流量优化**:通过存储过程,可以减少客户端和服务器之间的网络通信,提高性能。 **创建存储过程** 在SQL Server中,创建存储过程主要涉及以下两个方法: 1. **使用创建存储过程模板**:通过SQL Server Management Studio(SSMS)中的“模板资源管理器”选择“创建存储过程”模板,编辑Transact-SQL语句并执行。 2. **利用管理平台直接创建**:在SSMS中,导航至相应数据库的“存储过程”目录,右键新建存储过程,编写Transact-SQL代码并执行。 创建存储过程时,需要定义三个关键部分: - **参数**:包括输入参数、输出参数,用于传递调用者与存储过程之间的数据。 - **操作语句**:包含执行的SQL命令,可能涉及对数据库的操作,如查询、插入、更新等,也可以调用其他存储过程。 - **状态值**:返回调用结果,指示存储过程执行的成功与否。 创建存储过程的`CREATE PROCEDURE`语法如下: ```sql CREATE {PROC|PROCEDURE} [schema_name.]procedure_name[;number] [{@parameter[type_schema_name.] data_type} [VARYING][=default][[OUT[PUT]][,...n] [WITH <procedure_option> [,...n] [FOR REPLICATION] AS {<sql_statement>[;][...n]|<method_specifier>}[,;] <procedure_option> ::= [ENCRYPTION][RECOMPILE] EXECUTE_AS_Clause] <sql_statement> ::= {[BEGIN] statements [END]} <method_specifier> ::= EXTERNAL NAME assembly_name.class_name.method_name ``` **示例创建存储过程** 例子1:创建一个不带参数的存储过程,返回所有员工的姓名、Email地址和电话: ```sql USE adventureworks; GO CREATE PROCEDURE au_infor_all AS SELECT lastname, firstname, emailaddress, phone FROM person.contact; GO ``` 例子2:创建一个存储过程,简化向sc表添加数据的工作,参数作为数据添加: ```sql CREATE PROCEDURE [dbo].[pr1_sc_ins] @Param1 char(10), @Param2 char(2), @Param3 real AS BEGIN insert into sc(sno, cno, score) values(@Param1, @Param2, @Param3) END ``` 例子3:创建一个带参数的存储过程,从视图中获取指定雇员的信息: ```sql USE AdventureWorks; GO CREATE PROCEDURE GetEmployees @lastname varchar(40), @firstname varchar(20) AS SELECT Title, DepartmentName FROM HumanResources.vEmployeeDepartmentHistory WHERE LastName = @lastname AND FirstName = @firstname; GO ``` 这些例子展示了如何根据不同的需求创建存储过程,从简单的数据查询到复杂的数据操作,存储过程都提供了高效且安全的解决方案。通过熟练掌握存储过程的创建和管理,可以优化数据库应用的性能和安全性。
剩余19页未读,继续阅读
- 粉丝: 105
- 资源: 9354
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助