- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据库基础与应用》第9章存储过程的创建和使用 ;自定义函数的创建与使用?;存储过程与自定义函数的区别?;本章主要内容 ;本章核心知识点;本章重点难点;本章教学目标;第9章 存储过程的创建和使用 ;9.1 概述 ;9.1.1 理解存储过程的概念 ;。;9.1.2 理解存储过程的优点 ;3.减少网络流量
特别对于复杂的商业业务计算,例如计算用户的每月应交电费,如采用T-SQL实现,则需要大量的T-SQL语句和中间数据在客户机与SQL SERVER服务器之间的网络通道上传送;采用存储过程实现,则只需由一条执行存储过程的单独语句就可实现,大大减少网络流量。
4.提高系统安全性
可作为安全机制使用。通过适当的权限设置,可以使系统的安全性得到有效保障。
5.允许模块化程序设计
存储过程可以封装企业的功能模块,这种企业的功能模块也为商业规则或者商业策赂,可以只创建一次并将其存储在数据库中,以后即可在程序中调用该过程任意次,而且可以统一修改。;9.1.3 掌握存储过程的分类 ;用户自定义存储过程可根据不同的标准予以分类:
(1)临时存储过程。是以存储过程名#、##开头的存储过程。存放在tempdb数据库中,当用户断开连接时将自动删除临时存储过程。
(2)本地存储过程。用户创建并存放在用户当前连接的SQL SERVER数据库中的存储过程, 是我们通常意义上的存储过程。
(3)扩展存储过程。是利用高级语言(如DELPHI和C++等)编写的存储过程。实际是包含在一个WIn32.DLL中的一个函数。只有那些可以独立创建DLL和EXE文件的高级程序语言可用来创建扩展存储过程。 ;9.2 创建存储过程 ;9.2.1 利用企业管理器创建存储过程 ;(1)启动SQL SERVER企业管理器,依次单击控制台树上的【服务器组】→【服务器】→【数据库】→【要创建存储过程的数据库】→右击【存储过程】,在弹出的快捷菜单中单击【新建存储过程】,如图所示。;(2)弹出存储过程属性对话框,如图所示。;(3)在“文本”框中输入存储过程。包括修改存储过程名, 并在”AS”后输入存储过程内容。
(4)单击【检查语法】按钮,检查所输入的SQL语句语法的是否正确。
(5)单击【确定】按钮,创建该存储过程。;9.2.2 使用Transact-SQL语言创建存储过程;1.创建带有复杂 SELECT 语句的简单过程
【例9-1】创建存储过程,返回所有帖子信息。这些帖子信息要求显示编号的意义。如:发帖人不使用用户编号,而使用发帖人的昵称;帖子所在版块不使用版块编号,而显示版块名。
【分析】:
(1)使用CREATE PROCEDURE语句创建存储过程,该存储过程无输入参数、输出参数。
(2)帖子信息存放于TOPIC表,发帖人信息存放于USERS表,版块信息存放于SECTION表, 三张表作联接查询。;代码如下:
USE bbsdb
GO
CREATE PROCEDURE p_topic_all
AS
SELECT TID, TSID, Users.UName, TReplyCount, TEmotin, TTopic,
TContents, TTime, TClickCount, TFlag, TlastClickT, SECTION.SNAME
FROM Topic , Users ,SECTION
Where Topic.TUID = Users.UID and Topic.TSID = SECTION.SID
GO;执行上述T-SQL便可创建存储过程,创建成功的存储过程可由SQL的EXECUTE调用,也可由前端开发语言(DELPHI, C#, JAVA等)通过数据库接口(如OLD DB)的方法调用。
p_topic_all存储过程可以通过以下方法执行:
USE bbsdb
GO
EXECUTE p_topic_all
-- 或
EXEC p_topic_all
GO
;练习:;2.创建带有参数的简单存储过程
【例9-2】创建存储过程,除【例9-1】的要求(不显示代码,需要显示代码意义)外, 还要求只返回指定某版块编号的帖子信息。
【分析】:
(1)创建存储过程,该存储过程有输入参数“版块编号”,无输出参数。
(2)帖子信息存放于TOPIC表,发帖人信息存放于USERS表,版块信息存放于SECTION表, 三张表作联接查询,增加条件过滤。 ;代码如下:
USE bbsdb
GO
CREATE PROCEDURE p_topic_by_sid
@SID INT
?AS
SELECT TID, TSID, Users.UName, TReplyCount, TEmotion,
文档评论(0)