资源描述:
《存储过程实例精选》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、整理者为我实例1:只返回单一记录集的存储过程。银行存款表(bankMoney)的内容如下IduserIDSexMoney001Zhangsan男30002Wangwu男50003Zhangsan男40要求1:查询表bankMoney的内容的存储过程createproceduresp_query_bankMoneyasselect*frombankMoneygoexecsp_query_bankMoney注* 在使用过程中只需要把中的SQL语句替换为存储过程名,就可以了很方便吧!实例2(向存储过程中
2、传递参数):加入一笔记录到表bankMoney,并查询此表中userID=Zhangsan的所有存款的总金额。Createprocinsert_bank@param1char(10),@param2varchar(20),@param3varchar(20),@param4int,@param5intoutputwithencryption---------加密asinsertbankMoney(id,userID,sex,Money)Values(@param1,@param2,@param3,
3、@param4)select@param5=sum(Money)frombankMoneywhereuserID='Zhangsan'go在SQLServer查询分析器中执行该存储过程的方法是:declare@total_priceintexecinsert_bank'004','Zhangsan','男',100,@total_priceoutputprint'总余额为'+convert(varchar,@total_price)go在这里再啰嗦一下存储过程的3种传回值(方便正在看这个例子的朋友
4、不用再去查看语法内容):1.以Return传回整数2.以output格式传回参数3.Recordset传回值的区别:output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中。实例3:使用带有复杂SELECT语句的简单过程 下面的存储过程从四个表的联接中返回所有作者(提供了姓名)、出版的书籍以及出版社。该存储过程不使用任何参数。USEpubsIFEXISTS(SELECTnameFROMsysobjects WHEREname='au_in
5、fo_all'ANDtype='P') DROPPROCEDUREau_info_allGOCREATEPROCEDUREau_info_allASSELECTau_lname,au_fname,title,pub_name FROMauthorsaINNERJOINtitleauthorta ONa.au_id=ta.au_idINNERJOINtitlest ONt.title_id=ta.title_idINNERJOINpublishersp ONt.pub_i
6、d=p.pub_idGO au_info_all存储过程可以通过以下方法执行:EXECUTEau_info_all 实例4:使用带有参数的简单过程CREATEPROCEDUREau_info @lastnamevarchar(40), @firstnamevarchar(20)ASSELECTau_lname,au_fname,title,pub_name FROMauthorsaINNERJOINtitleauthorta ONa.au_id=ta.au_idINNERJOIN
7、titlest ONt.title_id=ta.title_idINNERJOINpublishersp ONt.pub_id=p.pub_id WHERE au_fname=@firstname ANDau_lname=@lastnameGO au_info存储过程可以通过以下方法执行:EXECUTEau_info'Dull','Ann'--OrEXECUTEau_info@lastname='Dull',@firstname='Ann'--OrEXECUTEau_i
8、nfo@firstname='Ann',@lastname='Dull'实例5:使用带有通配符参数的简单过程CREATEPROCEDUREau_info2@lastnamevarchar(30)='D%',@firstnamevarchar(18)='%'ASSELECTau_lname,au_fname,title,pub_nameFROMauthorsaINNERJOINtitleauthorta ONa.au_id=ta.au_idINNERJOINtitlest ONt