




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 存储过程介绍 创建和管理存储过程 在存储过程中使用参数 处理错误信息补充:实现存储过程 定义存储过程 存储过程的优点存储过程介绍定义存储过程 存储过程存储过程 是存储在服务器上的 Transact-SQL 语句的命名集合 是封装重复性任务的方法 支持用户声明变量、条件执行以及其他强有力的编程特性 SQL Server 中的存储过程与其他编程语言中的过程类中的存储过程与其他编程语言中的过程类似,它可以似,它可以 包含执行数据库操作(包括调用其他过程)的编程语句 接受输入参数 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因) 以输出参数的形式将多个值返回至调用过程或批处理存储过程的
2、优点存储过程封装了商务逻辑,确保一致的数据访问和修改存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用屏蔽数据库模式的详细资料屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象提供了安全性机制提供了安全性机制。用户可以被赋予执行存储过程的权限,而不必在存储过程引用的所有对象上都有权限改善性能改善性能。预编译的 Transact-SQL 语句,可以根据条件决定执行哪一部分减少网络通信量减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的
3、请求/回答包 存储过程介绍 创建和管理存储过程 在存储过程中使用参数 处理错误信息实现存储过程创建和管理存储过程 创建存储过程 执行存储过程 修改和删除存储过程创建存储过程 创建存储过程 只能在当前数据库内创建存储过程,除了临时存储过程。临时存储过程总是创建在 tempdb 数据库中 存储过程可以引用表、视图、用户定义函数、其他存储过程以及临时表 若存储过程创建了局部临时表,则当存储过程执行结束后临时表消失USE NorthwindGOCREATE PROC dbo.OverdueOrdersAS SELECT * FROM dbo.Orders WHERE RequiredDate GETD
4、ATE() AND ShippedDate IS NullGO创建存储过程(续) 创建存储过程(续) CREATE PROCEDURE 定义可以包括任何数目和类型的Transact-SQL语句,但不包括下列对象创建语句:CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 执行 CREATE PROCEDURE 语句的用户必须是 sysadmin、db_owner 或 db_ddladmin角色的成员,或必须拥有 CREATE PROCEDURE 权限 依赖于可用内存,存储过程的最大大小为128 MB
5、存储过程可以嵌套32层。当前的嵌套层数存储在系统函数 nestlevel 中。创建存储过程(续)查看存储过程的信息 查看所有类型存储过程的额外信息 系统存储过程 sp_help、sp_helptext、sp_depends 显示数据库中的存储过程以及拥有者名字的列表 系统存储过程 sp_stored_procedures 得到存储过程的信息 查询系统表 sysobjects、syscomments、sysdepends创建存储过程的指导原则 避免出现存储过程的拥有者和底层对象的拥有者不同的情况,建议由dbo用户拥有数据库中所有对象 每个存储过程完成单个任务 命名本地存储过程的时候,避免使用“s
6、p_”前缀 尽量少使用临时存储过程,以避免频繁连接 tempdb 里的系统表 不要直接从 syscomments 系统表里删除项执行存储过程 单独执行存储过程单独执行存储过程不带参数的情况:EXECUTE 存储过程名存储过程名 WITH RECOMPILE 在在 INSERT 语句内执行存储过程语句内执行存储过程语法:INSERT INTO 表名表名 EXECUTE 将本地或远程存储过程返回的结果集插入本地表中 在 INSERT 语句内执行的存储过程必须返回关系结果集USE NorthwindGOEXEC OverdueOrdersGO 修改和删除存储过程 修改存储过程 用 ALTER PRO
7、CEDURE 中的定义取代现有存储过程原先的定义,但保留权限分配USE NorthwindGOALTER PROC dbo.OverdueOrdersASSELECT CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeIDFROM OrdersWHERE RequiredDate GETDATE() AND ShippedDate IS NullORDER BY RequiredDateGO 修改和删除存储过程(续) 删除存储过程语法:DROP PROCEDURE 存储过程名 ,.n 用 DROP PR
8、OCEDURE 语句从当前数据库中移除用户定义存储过程 删除存储过程的注意事项 在删除存储过程之前,执行系统存储过程 sp_depends 检查是否有对象依赖于此存储过程 存储过程介绍 创建和管理存储过程 在存储过程中使用参数 处理错误信息实现存储过程在存储过程中使用参数 使用输入参数 使用输入参数执行存储过程 使用输出参数返回值使用输入参数 输入参数允许传递信息到存储过程内 在 CREATE PROCEDURE 中指定 参数名参数名 数据类型数据类型 =默认值默认值 USE NorthwindGOCREATE PROC dbo.OverdueOrders2Employee_ID int ,O
9、rder_date datetimeASSELECT CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeIDFROM OrdersWHERE EmployeeID = Employee_ID and OrderDate = Order_dateGO 使用输入参数执行存储过程 通过参数名传递值(顺序无所谓) 通过位置传递参数(顺序保持一致)EXEC OverdueOrders2 Employee_ID = 1 , Order_date = 1996-7-17EXEC OverdueOrders2 1 ,
10、1996-7-17EXEC OverdueOrders2 Order_date = 1996-7-17, Employee_ID = 1 使用输出参数返回值 输出参数:以 OUTPUT 关键字指定的变量CREATE PROC proc1A int , B int , RESULT int OUTPUTASSET RESULT = A * BGO 执行有输出参数的存储过程DECLARE answer intEXEC proc1 4, 7, answer OUTPUTSELECT answer as ANSWER 必须定义一个变量,必须定义一个变量,以接受返回值以接受返回值写上写上OUTPUT,才
11、才可以接收到返回值可以接收到返回值 存储过程介绍 创建和管理存储过程 在存储过程中使用参数 处理错误信息实现存储过程错误信息处理 为了增强存储过程的效率,应使用错误信息向用户传达事务状态(成功或失败) 可以在错误处理逻辑中检查下列错误:返回码、SQL Server 错误、用户定义的错误信息 RETURN 语句 从查询或存储过程无条件返回,同时可以返回一个整数状态值(返回码) 返回码为0表示成功。返回非零表示失败。用户定义的返回值总是优先于系统的返回值。错误信息处理(续) error 全局变量 error 包含了最近执行的 Transact-SQL 语句的错误号,随着每一条语句的执行而更新 如果
12、语句成功执行,返回0演示 错误信息处理例:创建一个存储过程,插入学生信息。 create create procproc upStudInsert studName varchar(20),birthdate datetime,schooldate datetime as as begin transaction begin transaction insert into tblstudent values(studName,birthdate,schooldate) if errorerror 0 begin rollback tranrollback tran print failfail return end else print successsuccess commit transaction commit transaction GO演示1 错误信息处理(续)用下面的语句验证:EXEC upStudInsert Tom, 2007-1-1, 1988-11-1EXEC upStudInsert Tom, 1981-1-1, 19
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美容行业中的团队合作与协调技巧试题及答案
- 防学校欺凌课件
- 食品检验实验室的设备与试题及答案
- 公共事业管理考点分析试题及答案
- 2024-2025学年河南省驻马店新蔡一高高一下学期2月月考物理试题及答案
- 计算机基础考试技巧与实例试题及答案
- 大学古代文学史的评估试题及答案
- 拼写误差影响的分析试题及答案
- 2024年CPBA商业分析师模拟考试题目及答案
- 2024年汽车美容师市场需求分析试题及答案
- 《光伏发电工程预可行性研究报告编制规程》(NB/T32044-2018)中文版
- 老人夏季腹泻预防和治疗
- 安全警示教育护理课件
- 类风湿关节炎病情活动度评价表(DAS28)
- A4纸笔记本横格线条打印模板
- 【施工组织设计】内容完整性和编制水平
- 2023公路桥梁钢结构防腐涂装技术条件
- (13)-2.7科学把握理想与现实的辩证统一
- Unit5Poems单元分析讲义高中英语人教版选择性
- 青岛版六年级数学上册 (完美的图形)教学课件(第1课时)
- 2022新能源光伏发电工程竣工决算报告模板
评论
0/150
提交评论