



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
存储过程use EBuygo-常用的系统存储过程sp_addmessage -将新的用户定义错误消息存储在SQL Server数据库实例中sp_helptext -显示用户定义的规则、默认值、存储过程、函数、视图等对象的实际文本sp_xml_preparedocument -读取作为输入提供的XML文本,然后使用MSXML分析器对其进行分析,并提供分析后的文档供使用sp_helpdb EBuy -查看指定数据库的信息sp_databases -列出服务器上的所有数据库sp_server_info -列出服务器信息,如字符集、版本和排列顺序等sp_stored_procedures -列出当前环境中的所有存储过程sp_configure -修改SQL Server全局配置选项sp_adduser -向当前数据库中添加新的用户sp_addrole -在当前数据库中创建新的数据库角色-用户自定义存储过程create table users(id int primary key,name varchar(20) not null,pwd varchar(20) not null)insert into users values(1,zhangsan,zhang01)gocreate procedure addUser -创建存储过程(procedure可以简写为proc)id int,name varchar(20),pwd varchar(20)as begininsert into users(id,name,pwd) values(id,name,pwd)endexec addUser 2,lisi,lisi01 -执行存储过程(实参传递的顺序和所对应的形参顺序必须一致)exec addUser name=wangwu,pwd=wang01,id=3 -执行存储过程,这种方式顺序可以不一致declare v_id int,v_name varchar(20),v_pwd varchar(20)set v_id=5set v_name=zhaoliu2set v_pwd=zhao022exec addUser v_id,v_name,v_pwd -执行存储过程,调用存储过程并传递变量参数(顺序必须与定义变量的顺序一致)select * from users-制定默认值use Studyif exists(select * from sys.all_objects where name=increaseCredit and type=P)drop procedure increaseCreditgocreate proc increaseCreditstuName char(6)=null, -指定null为默认值credit int = 3 -制定整数值3为默认值asbeginif stuName=nullbeginprint 没有指定学号,更新无法完成returnendupdate student set credit=credit+credit where stuName=stuNameendexec increaseCredit 程琳,5 -提供所有参数exec increaseCredit 程琳 -提供部分参数,则第二个参数使用默认值3-指定参数方向if exists(select name from sys.all_objects where name=avgCreditForMajor and type=P)drop proc avgCreditForMajorcreate proc avgCreditForMajormajorId int, -输入参数avg decimal(4,1) output -输出参数asselect avg=avg(credit) from student where majorId=majorIdgodeclare avgCredit decimal(4,1) exec avgCreditForMajor 1,avgCredit output -将输出的返回值保存在avgCredit变量中,注意输出参数也必须指定output关键字print(专业平均学分:+cast(avgCredit as varchar) -显示储存过程的返回值go-使用return语句use EBuyif exists(select name from sys.all_objects where name=checkCity and type=P)drop proc avgCreditForMajorcreate proc checkCitycusid varchar(20)asif(select address from customer where cusId=cusid) like %上海%return 1else if(select address from customer where cusId=cusid) not like %上海%return 2else return 3declare ret_status intexec ret_status=checkCity 1001 -客户住在上海select ret_status as 返回状态declare ret_status intexec ret_status=checkCity 1004 -客户不住在上海select ret_status as 返回状态declare ret_status intexec ret_status=checkCity 13204 -客户不存在的情况select ret_status as 返回状态-事物和错误处理create proc procTestasdeclare num intselect num=9begin trywhile num0beginprint convert(varchar,sqrt(num)select num=num-1if num=5raiserror(基数已小于6,16,1)endend trybegin catchprint 放生错误的是:+convert(varchar,error_procedure()print 错误编号:+convert(varchar,error_number()print 错误描述:+convert(varchar,error_message()print 错误级别:+convert(varchar,error_severity()print 错误位于:+convert(varchar,error_line()print 错误状态:+convert(varchar,error_state()end catchgoexec procTest -执行存储过程-存储过程中的事务use EBuycreate table account(accId int,type varchar(10),balance decimal(10,2)insert into account values(33,savings,3000)insert into account values(33,checking,1500)if exists(select name from sys.all_objects where name=savingsToChecking and type=P)drop proc savingsToCheckinggocreate proc savingsToCheckingaccid int,num decimal(10,2)asdeclare bal decimal(10,2)begin tryselect bal=balance from account where accId=accid and type=savingsif numbalreturn 1begin tranupdate account set balance=balance-num where accId=accid and type=savingsupdate account set balance=balance+num where accId=accid and type=checkingcommit tranreturn 0end trybegin catchrollback tranreturn 2end catchgodeclare retCode intbeginexec retCode=savingsToChecking 33,1500if retCode=0print 转账成功else if retCode=1print 转账金额大于账面余额,转账失败else print 数据库发生错误,转账失败end-存储过程的查看、修改和删除sp_helptext savingsToChecking -查看存储过程alter proc savingsToCheckingaccid int, -此处可以修改参数的定义num decimal(10,2)drop proc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊顶开业活动方案
- 同城报销活动方案
- 同盟盛典活动策划方案
- 名师俱乐部活动方案
- 主动脉夹层护理疑难病例讨论
- 名师教学示范活动方案
- 吟诵舞蹈活动方案
- 福大大气污染控制工程课件第01章 绪论
- 员工下厨房活动方案
- 员工半年冲刺活动方案
- 新能源汽车全解析
- 2025年教师资格考试小学面试体育试题及解答参考
- 吸入麻醉课件教学课件
- 人教版(2024新版)七年级上册英语期中复习课件
- 云南省昭通市(2024年-2025年小学五年级语文)人教版摸底考试(下学期)试卷及答案
- 金融行业安全生产责任管理
- 中国敏感性皮肤临床诊疗指南(2024版)
- 马拉松志愿者培训方案
- 近3年国网系统安全事故(事件)通报+各专业严重违章专项测试题附答案
- 肺孢子菌肺炎护理查房
- 2023年法律职业资格《主观题》真题及答案
评论
0/150
提交评论