⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10974.htm

📁 说明: column_list列出要添加数据的列名。在给表或视图中部分列添加数据时
💻 HTM
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MS SQL基础教程:存储过程概述 - 编程入门网</title>
<meta name="keywords" content="MS SQL基础教程:存储过程概述">
<meta name="description" content="MS SQL基础教程:存储过程概述">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="/images/style.css" rel="stylesheet" type="text/css" />
<script src="/js1/head.js"></script>
</head>
<body leftmargin="0" topmargin="0" bgcolor="#efefef" oncopy=nocopy()>
<TABLE width="760" cellPadding="0" cellSpacing="0"  bgcolor="#eff7fe" align="center">
  <TR>
    <TD><a href="/index.htm"><img src="/images/logo1.gif" width="150" height="60" border="0"></a></TD>
    <TD width="470" align="right"><script src="/js1/top.js"></script></TD>
    <TD width="125" align="center"><script src="/js1/topsy.js"></script></TD>
  </TR>
</TABLE>
<table width="760" border="0" cellpadding="1" cellspacing="0" class="bklan" align="center">
  <tr>
    <td align="center" bgcolor="#eff7fe" height="24"> | <a href='/Programming/index.htm'>编程语言</a> | <a href='/webkf/index.htm'>web开发</a> | <a href='/data/index.htm'>数据库</a> | <a href='/Network/index.htm'>网络技术</a> | <a href='/OS/index.htm'>操作系统</a> | <a href='/Servers/index.htm'>服务器</a> | <a href='/web/index.htm'>网页设计</a> | <a href='/Design/index.htm'>图形设计</a> | <a href='/Office/index.htm'>办公软件</a> | <a href='/soft/index.htm'>常用软件</a> | <a href='/shadu/index.htm'>杀毒频道</a> | <a href='/PC/index.htm'>学电脑</a> |</td>
  </tr>
</table>
<table cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
  <tr>
    <td align="center"><script src="/js1/content1.js"></script></td>
  </tr>
</table>
<table width="760" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td height="25" background="/templets/img/31bg3.gif" align="left" class="guidet">&nbsp;→ 当前位置:<a href='http://www.bianceng.cn/'>首页</a>→<a href='/data/index.htm'>数据库</a>→<a href='/data/SQLServer/index.htm'>SQL Server</a>→<a href='/data/SQLServer/jc/index.htm'>SQL Server教程</a>→正文</td>
  </tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  <tr>
    <td valign="top" class="guidet" width="595"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="ct">
  <tr>
    <td align="center" valign="middle" class="til"><h3>&nbsp;&nbsp; MS SQL基础教程:存储过程概述 </h3>
      发布时间:2008-07-11 来源:本站收集整理 作者:不详<br />
      <script src="/js1/468.js"></script>
    </td>
  </tr>
  <tr>
    <td style="font-size:14px" align="left" class="til"><table border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><script src="/js1/300.js"></script></td>
</tr>
</table><p>  在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。就</p>
<p>  本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQL Server 2000 不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。</p>
<p>  12.1.1 存储过程的概念</p>
<p>  存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。</p>
<p>  在SQL Server 的系列版本中存储过程分为两类:系统提供的存储过程和用户自定义存储过程。系统过程主要存储在master 数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQL Server 提供支持。通过系统存储过程,MS SQL Server 中的许多管理性或信息性的活动(如了解数据库对象、数据库信息)都可以被顺利有效地完成。尽管这些系统存储过程被放在master 数据库中,但是仍可以在其它数据库中对其进行调用,在调用时不必在存储过程名前加上数据库名。而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动创建。用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。在本章中所涉及到的存储过程主要是指用户自定义存储过程。</p>
<p>  12.1.2 存储过程的优点</p>
<p>  当利用MS SQL Server 创建一个应用程序时,Transaction-SQL 是一种主要的编程语言。若运用Transaction-SQL 来进行编程,有两种方法。其一是,在本地存储Transaction- SQL 程序,并创建应用程序向SQL Server 发送命令来对结果进行处理。其二是,可以把部分用Transaction-SQL 编写的程序作为存储过程存储在SQL Server 中,并创建应用程序来调用存储过程,对数据结果进行处理存储过程能够通过接收参数向调用者返回结果集,结果集的格式由调用者确定;返回状态值给调用者,指明调用是成功或是失败;包括针对数据库的操作语句,并且可以在一个存储过程中调用另一存储过程。</p>
<p>  我们通常更偏爱于使用第二种方法,即在SQL Server 中使用存储过程而不是在客户计算机上调用Transaction-SQL 编写的一段程序,原因在于存储过程具有以下优点:</p>
<p>  (1) 存储过程允许标准组件式编程</p>
<p>  存储过程在被创建以后可以在程序中被多次调用,而不必重新编写该存储过程的SQL 语句。而且数据库专业人员可随时对存储过程进行修改,但对应用程序源代码毫无影响(因为应用程序源代码只包含存储过程的调用语句),从而极大地提高了程序的可移植性。</p>
<p>  (2) 存储过程能够实现较快的执行速度</p>
<p>  如果某一操作包含大量的Transaction-SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的执行计划。而批处理的Transaction- SQL 语句在每次运行时都要进行编译和优化,因此速度相对要慢一些。</p>
<p>  (3) 存储过程能够减少网络流量</p>
<p>  对于同一个针对数据数据库对象的操作(如查询、修改),如果这一操作所涉及到的 Transaction-SQL 语句被组织成一存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,否则将是多条SQL 语句,从而大大增加了网络流量,降低网络负载。</p>
<p>  (4) 存储过程可被作为一种安全机制来充分利用</p>
<p>  系统管理员通过对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限的限制,避免非授权用户对数据的访问,保证数据的安全。(我们将在14 章&ldquo;SQLServer 的用户和安全性管理&rdquo;中对存储过程的这一应用作更为清晰的介绍)</p>
<p>  注意:存储过程虽然既有参数又有返回值,但是它与函数不同。存储过程的返回值只是指明执行是否成功,并且它不能像函数那样被直接调用,也就是在调用存储过程时,在存储过程名字前一定要有EXEC保留字(如何执行存储过程见本章下一字)。</p>
<p>  <a href="/data/SQLServer/jc/200712/6352.htm">查看全套&quot;MS SQL基础教程&quot;</a></p><center><br /><script src="/js1/4682.js"></script></center>
      <p>上一篇:<a href='/data/SQLServer/jc/200807/10973.htm'>MS SQL基础教程:创建存储过程</a>  &nbsp; 下一篇:<a href='/OS/unix/200807/10975.htm'>Solaris8系统的安装</a> </p></td>
  </tr>
  <tr>
    <td align="left" style="font-size:14px;" height="25"><IMG src="/images/t0.gif" width="12" height="12" align=absMiddle><strong>相关文章</strong><br /><table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10973.htm">MS SQL基础教程:创建存储过程</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10972.htm">MS SQL基础教程:管理存储过程</a><br/>
	</td>
	</tr>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10971.htm">MS SQL基础教程:系统存储过程</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10950.htm">MS SQL基础教程:用户和安全性管理--SQL Ser</a><br/>
	</td>
	</tr>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10945.htm">MS SQL基础教程:SQL Server安全性管理的途</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10944.htm">MS SQL基础教程:备份和恢复概述</a><br/>
	</td>
	</tr>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10943.htm">MS SQL基础教程:创建备份设备</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10942.htm">MS SQL基础教程:SQL数据库备份</a><br/>
	</td>
	</tr>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10941.htm">MS SQL基础教程:备份向导</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10940.htm">MS SQL基础教程:SQL数据库的恢复</a><br/>
	</td>
	</tr>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200807/10939.htm">MS SQL基础教程:备份和恢复系统数据库</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200805/9928.htm">教你如何来进行编写通用的数据访问</a><br/>
	</td>
	</tr>
<tr>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200805/9927.htm">教你如何使用SQL Server来过滤数据</a><br/>
	</td>
	<td width='50%'>
·<a href="/data/SQLServer/jc/200805/9926.htm">SQL Server数据库的数据汇总完全解析</a><br/>
	</td>
	</tr>
	</table>
</td>
  </tr>
</table>
</td>
    <td width="165" valign="top" class="guideb"><script src="/js1/1601.js"></script><table width="100%" border="0" cellpadding="0" cellspacing="0" valign="top">
      <tr>
        <td height="25" align="center" background="/templets/img/31bg3.gif"><strong>阅读排行</strong></td>
      </tr>
      <tr>
        <td>·<a href="/data/SQLServer/jc/200712/6352.htm">MS SQL Server入门教程</a><br/>
·<a href="/data/SQLServer/jc/200705/1189.htm">sql语言教程</a><br/>
·<a href="/data/SQLServer/jc/200807/10973.htm">MS SQL基础教程:创建存储</a><br/>
·<a href="/data/SQLServer/jc/200705/1182.htm">sql字符串函数</a><br/>
·<a href="/data/SQLServer/jc/200712/6301.htm">MS SQL基础教程:SQL Serve</a><br/>
·<a href="/data/SQLServer/jc/200712/6302.htm">MS SQL基础教程:SQL Serve</a><br/>
·<a href="/data/SQLServer/jc/200712/6314.htm">MS SQL基础教程:数据类型</a><br/>
·<a href="/data/SQLServer/jc/200705/1188.htm">Sql语言基础</a><br/>
·<a href="/data/SQLServer/jc/200712/6311.htm">MS SQL基础教程:Transact-</a><br/>
·<a href="/data/SQLServer/jc/200712/6312.htm">MS SQL基础教程:SQL变量</a><br/>
·<a href="/data/SQLServer/jc/200705/1184.htm">sql基本语句</a><br/>
·<a href="/data/SQLServer/jc/200807/10972.htm">MS SQL基础教程:管理存储</a><br/>
·<a href="/data/SQLServer/jc/200712/6306.htm">MS SQL基础教程:数据库基</a><br/>
·<a href="/data/SQLServer/jc/200705/1178.htm">sql数据表</a><br/>
·<a href="/data/SQLServer/jc/200705/1177.htm">sql表修改语句</a><br/>
 </td>
      </tr>
	  <tr>
        <td><script src="/js1/1602.js"></script></td>
      </tr>
	  <tr>
        <td height="25" align="center" background="/templets/img/31bg3.gif"><strong>最新文章</strong></td>
      </tr>
	  <tr>
        <td><script src="/plus/js/0.js" language="javascript"></script></td>
      </tr>
	  </table></td>
  </tr>
</table>
<table cellspacing="0" cellpadding="0" width="760" align="center" bgcolor="#ffffff" border="0">
  <tr>
    <td align="center"><script src="/js1/content2.js"></script></td>
  </tr>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr height="26">
    <td bgcolor="#e1f0fd" width="48"></td>
    <td bgcolor="#6ab3f4" width="35"></td>
    <td bgcolor="#0a518f" colspan="2" width="4"></td>
    <td bgcolor="#c0c0c0" width="530" align="center"><a title="将本站设为你的首页" onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://www.bianceng.cn');return false;" href="http://www.bianceng.cn/">设为首页</a> | <a class="navmenu" 
      title="将本站加入到你的收藏夹" 
      href="javascript:window.external.AddFavorite(location.href,document.title)">加入收藏</a> | <a href="/about/about.htm">关于本站</a> | <a href="/plus/flink.php">友情链接</a> | <a href="/about/banquan.htm">版权声明</a> | <a href="/plus/sitemap.html">网站地图</a> | <a href="/plus/rssmap.html">RSS订阅</a></td>
    <td bgcolor="#0a518f" colspan="2" width="4"></td>
    <td bgcolor="#6ab3f4" width="32"></td>
    <td bgcolor="#e1f0fd" width="47"></td>
  </tr>
  <tr height="26">
    <td colspan="9" bgcolor="#FFFFFF" align="center">编程入门网 版权所有,bianceng.cn,All Rights Reserved. <script src="/js/tongji.js"></script> 阅读次数:<script src="/plus/count.php?aid=10974&mid=0" language="javascript"></script></td>
  </tr>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -