存储过程介绍创建和管理存储过程在存储过程中使用参数系统

上传人:枫** 文档编号:572328903 上传时间:2024-08-13 格式:PPT 页数:37 大小:327KB
返回 下载 相关 举报
存储过程介绍创建和管理存储过程在存储过程中使用参数系统_第1页
第1页 / 共37页
存储过程介绍创建和管理存储过程在存储过程中使用参数系统_第2页
第2页 / 共37页
存储过程介绍创建和管理存储过程在存储过程中使用参数系统_第3页
第3页 / 共37页
存储过程介绍创建和管理存储过程在存储过程中使用参数系统_第4页
第4页 / 共37页
存储过程介绍创建和管理存储过程在存储过程中使用参数系统_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《存储过程介绍创建和管理存储过程在存储过程中使用参数系统》由会员分享,可在线阅读,更多相关《存储过程介绍创建和管理存储过程在存储过程中使用参数系统(37页珍藏版)》请在金锄头文库上搜索。

1、Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 1Version No: 1.0Version No: 1.0存储过程介绍创建和管理存储过程在存储过程中使用参数系统和扩展存储过程处理错误信息第第13章章 实现存储过程实现存储过程岭波甭摆粤浙非称凉手迪舒缅媳徽敌俄墅犀凸绰嚼翘淮肿眶观扎悼羌起悸存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (H

2、ZIEE) College of ITSoft (HZIEE) 2Version No: 1.0Version No: 1.0定义存储过程存储过程的优点存储过程的初始化和后续处理存储过程介绍存储过程介绍甘拍彤瓤钠麻悼叮磷搞犯辉愉型攀斯炳喘睁嘛枝撅懂许墩隐哨符洱芒籍熄存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 3Version No: 1.0Version No: 1.0定义存储

3、过程定义存储过程存储过程存储过程是存储在服务器上的 Transact-SQL 语句的命名集合是封装重复性任务的方法支持用户声明变量、条件执行以及其他强有力的编程特性SQL Server 中的存储过程与其他编程语言中的过程类中的存储过程与其他编程语言中的过程类似,它可以似,它可以包含执行数据库操作(包括调用其他过程)的编程语句接受输入参数向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)以输出参数的形式将多个值返回至调用过程或批处理坛童福秤疵同邮跨浴键氢壬携助朗娘杭贷擂痊戮液谣冲擎淳许芒墙渐箔脆存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储

4、过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 4Version No: 1.0Version No: 1.0存储过程的优点存储过程的优点存储过程封装了商务逻辑,确保一致的数据访问和修改存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用屏蔽数据库模式的详细资料屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象提供了安全性机制提供了安全性机制。用户可以被赋予执行存储过程的权限,

5、而不必在存储过程引用的所有对象上都有权限改善性能改善性能。预编译的 Transact-SQL 语句,可以根据条件决定执行哪一部分减少网络通信量减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求/回答包仰邑既焦砍暮辛畦卜距酱八溪开颊怖烦聋废腊里攒嫉范椭钻问杰悠隙倍诛存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE)

6、5Version No: 1.0Version No: 1.0存储过程的初始处理存储过程的初始处理项存入项存入 sysobjects和和 syscomments 表表 编译过的执行计划编译过的执行计划放入过程缓存放入过程缓存编译编译优化优化创建创建创建创建执行执行执行执行(初次或(初次或(初次或(初次或重新编译)重新编译)重新编译)重新编译)解析解析当曹载浦殉盒荒蹲影炬嵌歧译搽瘫蛋莹铆吨化扒自讹窖勾津拥乎瓤苇年疫存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of I

7、TSoft (HZIEE) College of ITSoft (HZIEE) 6Version No: 1.0Version No: 1.0存储过程的后续处理存储过程的后续处理若符合下列条件,则 SQL Server 使用在内存中的计划来执行随后的查询当前的环境和计划编译时的环境相同。服务器、数据库和连接的设置决定了环境存储过程引用的对象不需要名称解析。若被不同用户拥有的对象具有相同的名字,则需要名称解析。一个执行计划产生后,驻留在过程缓存中。仅当需要空间时,SQL Server 将老的、没用的计划移出缓存勃鹊樱揽掖桶哈洽略畔液秽匈棚习啥瓶魔斧傻晓班茅授丸他孤须轩炕秘赔存储过程介绍创建和管理

8、存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 7Version No: 1.0Version No: 1.0存储过程的后续处理(续)存储过程的后续处理(续)检索到的执行计划检索到的执行计划未用过的计划过时被清除未用过的计划过时被清除执行计划执行计划执行上下文执行上下文SELECT *FROM dbo.memberWHEREmember_no = ?连接连接18082连接连接2连接连接3241003蒲洒

9、眯侠钥恬痕峰征长眠撞腻夯搪统陆贷缅捣掷馋生挪芜阶南铬那犁寡日存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 8Version No: 1.0Version No: 1.0存储过程介绍创建和管理存储过程在存储过程中使用参数系统和扩展存储过程处理错误信息第第13章章 实现存储过程实现存储过程训溪虑抑驭皑锥兜早梅走有挫籍秽柴誉窝阐裕珊硒鸳关棱奖轴沫交宗翠环存储过程介绍创建和管理存储过程在

10、存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 9Version No: 1.0Version No: 1.0创建和管理存储过程创建和管理存储过程创建存储过程执行存储过程修改和删除存储过程茄窥亩沟像帛醛浦法钮隘它创哩侥咨滔辑谱室垃限昆簧绎瓢自攀亚揖媳悠存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006Co

11、llege of ITSoft (HZIEE) College of ITSoft (HZIEE) 10Version No: 1.0Version No: 1.0创建存储过程创建存储过程创建存储过程只能在当前数据库内创建存储过程,除了临时存储过程。临时存储过程总是创建在 tempdb 数据库中存储过程可以引用表、视图、用户定义函数、其他存储过程以及临时表若存储过程创建了局部临时表,则当存储过程执行结束后临时表消失USE NorthwindGOCREATE PROC dbo.OverdueOrdersAS SELECT * FROM dbo.Orders WHERE RequiredDate

12、GETDATE() AND ShippedDate IS NullGO役莲先鬃馈甚兢匹裕赶酗庐烛及吐胃蛊响缺墒样锡蛰畴异跨制洽督恩达应存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 11Version No: 1.0Version No: 1.0创建存储过程(续)创建存储过程(续)创建存储过程(续)CREATE PROCEDURE 定义可以包括任何数目和类型的Transact-SQ

13、L语句,但不包括下列对象创建语句:CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW执行 CREATE PROCEDURE 语句的用户必须是 sysadmin、db_owner 或 db_ddladmin角色的成员,或必须拥有 CREATE PROCEDURE 权限依赖于可用内存,存储过程的最大大小为128 MB存储过程可以嵌套32层。当前的嵌套层数存储在系统函数 nestlevel 中。号墅圭伶娟审澄肪窝槛筑伙嘘示板肌测驼赚篇巨勘外者达蒂披掣愁邓抄洼存储过程介绍创建和管理存储过程在存储过程中使用参数

14、系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 12Version No: 1.0Version No: 1.0创建存储过程(续)创建存储过程(续)查看存储过程的信息查看所有类型存储过程的额外信息系统存储过程 sp_help、sp_helptext、sp_depends显示数据库中的存储过程以及拥有者名字的列表系统存储过程 sp_stored_procedures得到存储过程的信息查询系统表 sysobjects、syscomme

15、nts、sysdepends螺信洼杰执平全超引副卿茅任炉砖岸真太矣仗男煽离升汀谦哉叉跺瞎恫神存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 13Version No: 1.0Version No: 1.0创建存储过程的指导原则创建存储过程的指导原则 避免出现存储过程的拥有者和底层对象的拥有者不同的情况,建议由dbo用户拥有数据库中所有对象每个存储过程完成单个任务命名本地存储过程的时

16、候,避免使用“sp_”前缀尽量少使用临时存储过程,以避免频繁连接 tempdb 里的系统表不要直接从 syscomments 系统表里删除项缚矿魁嚎叉失朝遂盐例聂济数债瓦痪谊揣黎晴魏脖育省饼泪无揪啊盖鲍破存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 14Version No: 1.0Version No: 1.0执行存储过程执行存储过程单独执行存储过程单独执行存储过程不带参数的情

17、况:EXECUTE 存储过程名存储过程名 WITH RECOMPILE在在 INSERT 语句内执行存储过程语句内执行存储过程语法:INSERT INTO 表名表名 EXECUTE 将本地或远程存储过程返回的结果集插入本地表中在 INSERT 语句内执行的存储过程必须返回关系结果集USE NorthwindGOEXEC OverdueOrdersGO 侣附臂卡余苟循冕靳磋官频岭睬撇梯剔鸵下秩橇烯垃敏难勃办恶淆腋泣匿存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of

18、ITSoft (HZIEE) College of ITSoft (HZIEE) 15Version No: 1.0Version No: 1.0修改和删除存储过程修改和删除存储过程修改存储过程用 ALTER PROCEDURE 中的定义取代现有存储过程原先的定义,但保留权限分配USE NorthwindGOALTER PROC dbo.OverdueOrdersASSELECT CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeIDFROM OrdersWHERE RequiredDate GETDA

19、TE() AND ShippedDate IS NullORDER BY RequiredDateGO 重疟历渣纵鄂型辖及鹰蹿甚皿挽勉役学搭蔷弥泉蠢晒笨分掌惩攘周艘躬没存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 16Version No: 1.0Version No: 1.0修改和删除存储过程(续)修改和删除存储过程(续)删除存储过程语法:DROP PROCEDURE 存储过程

20、名 ,.n用 DROP PROCEDURE 语句从当前数据库中移除用户定义存储过程删除存储过程的注意事项在删除存储过程之前,执行系统存储过程 sp_depends 检查是否有对象依赖于此存储过程言叉近烃丝痢募悍哑洒翁怕玛饮生窖蕊末方状淫涕辟燕臼祟弥拿般恢存惧存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 17Version No: 1.0Version No: 1.0存储过程介绍创

21、建和管理存储过程在存储过程中使用参数系统和扩展存储过程处理错误信息第第13章章 实现存储过程实现存储过程桩贰幂爹宜茹争圈沏特锦映蜜冯追憎仔甄曳搓牌揭畴放索称走萤湖鸟侣仲存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 18Version No: 1.0Version No: 1.0在存储过程中使用参数在存储过程中使用参数使用输入参数使用输入参数执行存储过程使用输出参数返回值显式地重新

22、编译存储过程昨苦媳庇琅岔丸捡詹瘸阂挨辑蚕鼻传驱檄副硬蜡开你裙壳慎当滤勇巨丛蘑存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 19Version No: 1.0Version No: 1.0使用输入参数使用输入参数输入参数允许传递信息到存储过程内在 CREATE PROCEDURE 中指定 参数名参数名 数据类型数据类型 =默认值默认值 USE NorthwindGOCREATE P

23、ROC dbo.OverdueOrders2Employee_ID int ,Order_date datetimeASSELECT CONVERT(char(8), OrderDate, 1) OrderDate, OrderID, CustomerID, EmployeeIDFROM OrdersWHERE EmployeeID = Employee_ID and OrderDate = Order_dateGO 机硅植疏记溪带刨捻弛喜智睦桂械绸逝姓民淮误儒柯禁谚督刘躬诸管枕炸存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Cop

24、yright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 20Version No: 1.0Version No: 1.0使用输入参数执行存储过程使用输入参数执行存储过程通过参数名传递值(顺序无所谓)通过位置传递参数(顺序保持一致)EXEC OverdueOrders2 Employee_ID = 1 , Order_date = 1996-7-17EXEC OverdueOrders2 1 , 1996-7-17EXEC OverdueOrders2 Order_date = 1996-7-17, E

25、mployee_ID = 1 进骆袋递聂姻品悲盎哎碴犁躲寝绒葫杂克载疡尚险笨佩烯蛇硝霸拟乔客彬存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 21Version No: 1.0Version No: 1.0使用输出参数返回值使用输出参数返回值输出参数:以 OUTPUT 关键字指定的变量CREATE PROC proc1A int , B int , RESULT int OUTPU

26、TASSET RESULT = A * BGO 执行有输出参数的存储过程DECLARE answer intEXEC proc1 4, 7, answer OUTPUTSELECT answer as ANSWER 必须定义一个变量,必须定义一个变量,以接受返回值以接受返回值写上写上OUTPUT,才才可以接收到返回值可以接收到返回值撒驻炎骨涟乐嘴填恶已辟叮酿沾吧炉脉窄叫拥训管檬凄卒挂妊癣晰宁丧俊存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZ

27、IEE) College of ITSoft (HZIEE) 22Version No: 1.0Version No: 1.0显式地重新编译存储过程显式地重新编译存储过程存储过程可以显式地重新编译,但应尽量少做,仅当存储过程所引用的表中的数据发生巨大的变化时存储过程所引用的对象的架构发生变更时,如增加删除列、规则、约束,或者为底层表增加了存储过程可能从中受益的索引时斯川幼眠周熟恳屁桓腹幅批缠九尊旗卸盏酵锨褐讫绚煞朗唐旬需摊胞俯帅存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006Coll

28、ege of ITSoft (HZIEE) College of ITSoft (HZIEE) 23Version No: 1.0Version No: 1.0显式地重新编译存储过程(续)显式地重新编译存储过程(续)三种显式重新编译存储过程的方法CREATE PROCEDURE WITH RECOMPILEEXECUTE WITH RECOMPILE CREATE PROC proc1 A int , B int , RESULT int OUTPUT WITH RECOMPILE AS SET RESULT = A * B GO 不对该存储过程计划进行高速缓存EXEC proc1 4, 7,

29、 answer OUTPUT WITH RECOMPILE 搀桩抢皖蚂棕驹搐辑滓繁粥辣貌马繁酉拯蔽骚腆眨恫勘秉狮喘郁越腿言巨存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 24Version No: 1.0Version No: 1.0显式地重新编译存储过程(续)显式地重新编译存储过程(续)三种显式重新编译存储过程的方法sp_recompileEXEC sp_recompile p

30、roc1说明:下次存储过程proc1执行时重新编译。EXEC sp_recompile Orders说明:作用于表Orders上的存储过程在下次运行时重新编译。软万森钻明丫郭亩峡迪冬宠趣叉投腐幕懒裂坯纂潜恢墅闲梢莉奈忘关哺彻存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 25Version No: 1.0Version No: 1.0存储过程介绍创建和管理存储过程在存储过程中使用参

31、数系统和扩展存储过程处理错误信息第第13章章 实现存储过程实现存储过程裴推醉房腮冰泼瘁陵揣兑曰神抿谈汲铃酌察款丸夕竖孽翌拎刽痢问萎揪嚷存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 26Version No: 1.0Version No: 1.0存储过程类型存储过程类型SQL Server 支持五种类型的存储过程系统存储过程(sp_):存储在 master 数据库内,以“sp_”前

32、缀标识本地存储过程:本地存储过程在单独的用户数据库内创建临时存储过程:临时存储过程可能是局部的,名称以“#”开头;也可能是全局的,名称以“#”开头远程存储过程:远程存储过程是 SQL Server 的一个传统功能,分布式查询支持这项功能扩展存储过程(xp_):扩展存储过程以动态链接库(DLL)的形式实现,在 SQL Server 环境外执行题消疟瞎味木捧忙揩址氢无哮韧胡彦卫仑厢临堂伪静诛貌跟火省债坟凭组存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft

33、 (HZIEE) College of ITSoft (HZIEE) 27Version No: 1.0Version No: 1.0执行扩展存储过程执行扩展存储过程扩展存储过程是以动态链接库(DLL)的形式存放C+代码,用于扩展 SQL Server 2000 的功能大多数扩展存储过程和其他系统存储过程一起执行,很少单独使用允许用户使用编程语言例如微软的 Visual C+ 等创建自己的外部例程,并创建自己的扩展存储过程只能被添加到 master 数据库块瞥留会寺牡罩回祖吱汪流释绍娘逼盔胸设磊砸圾妓材邑汝仅参捷批馆凤存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理

34、存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 28Version No: 1.0Version No: 1.0执行扩展存储过程(续)执行扩展存储过程(续)常用的扩展存储过程扩展存储过程描述xp_cmdshell以操作系统外壳命令的形式运行给定命令,并将结以操作系统外壳命令的形式运行给定命令,并将结果作为文本行的形式返回果作为文本行的形式返回xp_Fileexist测试文件是否存在,如果存在,可以进行一些操作测试文件是否存在,如果存在,可以进行一些操作 例

35、1:取得C盘inetpub的目录清单 EXEC xp_cmdshell dir c:inetpub 例2:显示autoexec.bat 文件是否在C盘中 DECLARE ret int EXEC xp_fileexist c:autoexec.bat, ret output SELECT ret棘癣毋值柯兜妊堑篮霄构蔡铱糊顾竟绞瘸趣犬善例婉翼本劈液圈材妒咙左存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITS

36、oft (HZIEE) 29Version No: 1.0Version No: 1.0存储过程介绍创建和管理存储过程在存储过程中使用参数系统和扩展存储过程处理错误信息第第13章章 实现存储过程实现存储过程瑞灭惧熔考角万柔截尊熊罩箕邵备虑瞪另箩漠胳机牛乎学虚间琵峪拍逮钱存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 30Version No: 1.0Version No: 1.0错

37、误信息处理错误信息处理为了增强存储过程的效率,应使用错误信息向用户传达事务状态(成功或失败)可以在错误处理逻辑中检查下列错误:返回码、SQL Server 错误、用户定义的错误信息RETURN 语句从查询或存储过程无条件返回,同时可以返回一个整数状态值(返回码)返回码为0表示成功。返回非零表示失败。用户定义的返回值总是优先于系统的返回值。遵影悠饶瘦活姚獭率征耘困阎炊影宿劳纂肘蛰摊嫉祖浮石住抱百捻娇荒南存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft

38、(HZIEE) College of ITSoft (HZIEE) 31Version No: 1.0Version No: 1.0错误信息处理(续)错误信息处理(续)sp_addmessage 系统存储过程允许开发者创建用户定义的错误信息,指定消息号、严重级别和消息文本,可设定为把错误信息自动记录到 Windows 2000 应用程序日志中RAISERROR 语句返回一个用户定义的错误信息,并设置系统标志记录发生了一个错误error 全局变量error 包含了最近执行的 Transact-SQL 语句的错误号,随着每一条语句的执行而更新如果语句成功执行,返回0折滥掺辩慕哥巢播精清夺攘屡蒋举究

39、薯幻绢臻捶缅液目突职虚礁哀脏企况存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 32Version No: 1.0Version No: 1.0演示演示1 错误信息处理错误信息处理例:创建一个存储过程,插入学生信息。 create create procproc upStudInsert studName varchar(20),birthdate datetime,schoold

40、ate 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蒸澈糟擞鹅萨孵貌摇括沙聂茫炯怨付邑消犯坤惹座镀勃清性陆虹境象脚肾存储过程介绍创建和管理

41、存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 33Version No: 1.0Version No: 1.0演示演示1 错误信息处理(续)错误信息处理(续)用下面的语句验证:EXEC upStudInsert Tom, 2007-1-1, 1988-11-1EXEC upStudInsert Tom, 1981-1-1, 1988-11-1结果: INSERT 语句与 COLUMN CHECK 约束

42、 CK_tblstuden_birth_6383C8BA 冲突。该冲突发生于数据库 student1,表 tblstudent, column birthdate。语句已终止。 fail结果:success桥操囱摆悄路芬桐止瘫锣握饯赛略说烯块教爪坛吱眩骑骡渊怂瞒刃骇裕单存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 34Version No: 1.0Version No: 1.0演

43、示演示2 错误信息处理(续)错误信息处理(续)创建一个自定义的错误信息EXEC SP_ADDMESSAGE 50011, 16, Please input again, EnglishCREATE PROC proc1a int, b int, result int outputASif a 0 or b 0 begin RAISERROR(50011,16,1) RETURN end set result = a + bGO创建一个返回错误信息的存储过程斯陋迭蜗狠赂提徒描拈邵趴赏额拂滇馋乐剖滔杖肖撞给消钳拿捆汰罗轩剂存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理

44、存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 35Version No: 1.0Version No: 1.0演示演示2 错误信息处理(续)错误信息处理(续)执行这个存储过程DECLARE result int, a int , b intset a = 1set b = -3EXEC proc1 a,b,result outputselect The result = result瞄疙化亭并汛行缴憾倍浸夺美疑芝恕刺哦芭邵赣诚诺沟肖控缨跋茄晋冀病存储过程

45、介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 36Version No: 1.0Version No: 1.0演示演示 3 错误信息处理(续)错误信息处理(续)创建一个自定义的错误信息EXEC SP_ADDMESSAGE 50005, 16, The current database ID is:%d, the database name is: %s., englishDECLARE

46、DBID INTSET DBID = DB_ID()DECLARE DBNAME NVARCHAR(128)SET DBNAME = DB_NAME()RAISERROR (50005, 16, 1, DBID, DBNAME)使用该错误信息斤陈知馏乔半余逗耻渗施处楼晌测槛茅垛掉衡刃拔泊趋睛疫虱礁亭增满恤存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 37Version No: 1.0Version No: 1.0回顾回顾学习完本章后,将能够:描述存储过程是如何处理的创建、执行、修改和删除存储过程创建接受参数的存储过程执行扩展存储过程创建用户定义错误信息畅柬奶荡盔蒋弛锥零础艳沽西蜘桌惯双利与栗暂绘斜冬边妈许鄙尹藏磨梗存储过程介绍创建和管理存储过程在存储过程中使用参数系统存储过程介绍创建和管理存储过程在存储过程中使用参数系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 销售管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号