欢迎来到天天文库
浏览记录
ID:50047749
大小:3.51 MB
页数:30页
时间:2020-03-08
《数据库应用技术——SQL Server 2008篇 第3版 教学课件 作者 延霞 徐守祥 chap8.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、存储过程数据库应用技术——SQLServer2008篇主讲人:本章主要内容:1.存储过程的作用2.创建、修改、删除存储过程3.灵活运用存储过程什么是存储过程存储过程是一组编译在单个执行计划中的Transact-SQL语句,它将一些固定的操作集中起来交给SQLServer数据库服务器完成,以实现某个任务。利用服务器的计算能力,减少网络上的传输量,提高了客户端的工作效率存储过程的优点(1)通过本地存储、代码预编译和缓存技术实现高性能的数据操作。(2)通过通用编程结构和过程重用实现编程框架(3)通过隔离和加密的方法提高了数据库的安全性。建立和执行存储过程创建存
2、储过程,可以用SQLServerManagementStudio,也可以用SQL语句。示例:在marketing数据库中创建一个存储过程。该存储过程返回客户的订购信息––建立信息的存储过程CREATEPROCEDUREsimpleOrdersASSELECTA.姓名,A.电话,A.订货日期,B.货品名称,B.供应商FROM客户订单视图AINNERJOIN货品信息视图BONA.货品编码=B.编码GO––调用存储过程EXECUTEsimpleOrders执行字符串EXECUTE语句可以执行存放SQL语句的字符串变量,或直接执行SQL语句字符串示例:使用SQL
3、语句,在查询设计器中建立一个批处理,它能根据指定的表名关键字显示相应的表信息DECLARE@TableNamVARCHAR(20),@SelectKeyVARCHAR(6)SET@SelectKey='供应'––指定查询表名的关键字SELECT@TableNam=CASEWHEN@SelectKeyLIKE'%客户%'THEN'客户信息'WHEN@SelectKeyLIKE'%销售%'THEN'销售人员'WHEN@SelectKeyLIKE'%供应%'THEN'供应商信息'ELSENULLEND接上页IF@TableNamISNULL––如果是空则显示消
4、息PRINT'没有找到对应的表!'ELSEEXECUTE('SELECT*FROM'+@TableNam)––执行字符串查询语GO带输入参数的存储过程一个存储过程可以带一个或多个输入参数输入参数是指由调用程序向存储过程传递的参数示例:定义带输入参数的存储过程,能根据指定的表名关键字显示相应的表信息––如果存在则删除IFEXISTS(SELECTnameFROMsysobjectsWHEREname='DispTab'ANDtype='P')DROPPROCEDUREDispTabGO接上页––建立存储过程CREATEPROCEDUREDispTab@Se
5、lectKeyVARCHAR(6)––定义输入参数ASDECLARE@TableNamVARCHAR(20)SELECT@TableNam=CASEWHEN@SelectKeyLIKE'%客户%'THEN'客户信息'WHEN@SelectKeyLIKE'%销售%'THEN'销售人员'WHEN@SelectKeyLIKE'%供应%'THEN'供应商信息'ELSENULLEND接上页IF@TableNamISNULL––如果是空则显示消息PRINT'没有找到对应的表!'ELSEEXECUTE('SELECT*FROM'+@TableNam)GOEXECUTE
6、DispTab'供应'––指定查询表名的关键字4种执行存储过程的方法––参数@SelectKey采用默认值EXECUTEDispTab2@ColumnKey='地址'––参数@SelectKey采用默认值EXECUTEDispTab2DEFAULT,'地址'EXECUTEDispTab2@SelectKey='客户',@ColumnKey='地址‘EXECUTEDispTab2'客户','地址‘GO带输出参数的存储过程需要从存储过程中返回一个或多个值,可以通过在创建存储过程的语句中定义输出参数来实现示例:创建存储过程DispTab3,它是在例8-4的基础
7、上,提供一个游标输出参数,将查询的结果以结果集的方式返回––建立存储过程CREATEPROCEDUREDispTab3@SelectKeyVARCHAR(6)='客户',––定义输入参数,及默认值@ColumnKeyVARCHAR(6)='*',––定义输入参数,及默认值@ListTabCURSORVARYINGOUTPUT––定义游标作为输出参数ASDECLARE@TableNamVARCHAR(20)接上页SELECT@TableNam=CASEWHEN@SelectKeyLIKE'%客户%'THEN'客户信息'WHEN@SelectKeyLIKE'
8、%销售%'THEN'销售人员'WHEN@SelectKeyLIKE'%供应%'T
此文档下载收益归作者所有