免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年德州科技职业学院单招职业适应性测试题库及参考答案详解1套
- 2026年临汾职业技术学院单招职业倾向性测试题库带答案详解
- 2026年长沙文创艺术职业学院单招职业适应性考试题库含答案详解
- 2025湖北武汉市区属国有企业招聘1人考试笔试备考试题及答案解析
- 2026年四川邮电职业技术学院单招职业技能考试题库及参考答案详解一套
- 2026年吐鲁番职业技术学院单招职业倾向性测试题库及答案详解一套
- 天津商业大学《应用遥感技术》2025-2026学年第一学期期末试卷
- 2026年扬州市职业大学单招职业倾向性考试题库及答案详解一套
- 2025年舟山市普陀区虾峙镇工作人员招聘2人考试笔试备考试题及答案解析
- 日本文化交流实战案例分析高校日语专业学生如何应对面试
- 铁路高铁ZDJ9型转辙机培训
- 2025年度安全风险辨识评估报告~选煤厂
- 意识形态在企业管理中的实践案例
- GB/T 30099-2025实验室离心机
- 盆底磁刺激治疗规范
- 发酵设备安全管理制度
- 2025年 消防救援支队政府专职消防员招聘考试笔试真题(附答案)
- T/CCS 072-2023智能化煤矿网络运维管理规范
- T/CCPITCSC 096-2022名表真假鉴定规范
- 博士就业意向协议书
- 非营利组织采购管理制度与流程指南
评论
0/150
提交评论