SQLSERVER存储过程及调用详解

 使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用。
  存储过程其实就是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。
  可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。
  也可以创建在 Microsoft SQL Server 启动时自动运行的存储过程。

  要使用存储过程,首先我们必需熟悉一些基本的T-SQL语句,因为存储过程是由于一组T-SQL语句构成的,并且,我们需要了解一些关于函数、过程的概念,因为我们需要在应用程序中调用存储过程,就像我们调用应用程序的函数一样,不过调用的方法有些不同。
  下面我们来看一下存储过程的建立和使用方法。

一、创建存储过程

  和数据表一样,在使用之前我们需要创建存储过程,它的简明语法是:

引用:
Create PROC 存储过程名称
    [参数列表(多个以“,”分隔)]
AS
SQL 语句

例:

引用:
Create PROC upGetUserName
@intUserId        INT,
@ostrUserName NVARCHAR(20) OUTPUT                -- 要输出的参数
AS
BEGIN
        -- 将uName的值赋给 @ostrUserName 变量,即要输出的参数
        Select @ostrUserName=uName FROM uUser Where uId=@intUserId
END

  其中 Create PROC 语句(完整语句为Create PROCEDURE)的意思就是告诉SQL SERVER,现在需要建立一个存储过程,upGetUserName 就是存储过程名称,@intUserId 和 @ostrUserName 分别是该存储过程的两个参数,注意,在SQL SERVER中,所有用户定义的变量都以“@”开头,OUTPUT关键字表示这个参数是用来输出的,AS之后就是存储过程内容了。只要将以上代码在“查询分析器”里执行一次,SQL SERVER就会在当前数据库中创建一个名为“upGetUserName”的存储过程。你可以打开“企业管理器”,选择当前操作的数据库,然后在左边的树型列表中选择“存储过程”,此时就可以在右边的列表中看到你刚刚创建的存储过程了(如果没有,刷新一下即可)。

二、存储过程的调用

  之前我们已经创建了一个名为“upGetUserName”的存储过程,从字面理解该存储过程的功能是用来取得某一个用户的名称。存储过程建立好了,接下来就是要在应用程序里调用了,下面看一下在ASP程序里的调用。

引用:
Dim adoComm
’// 创建一个对象,我们用来调用存储过程
Set adoComm = CreateObject("ADODB.Command")
With adoComm
        ’// 设置连接,设 adoConn 为已经连接的 ADODB.Connection 对象
        .ActiveConnection = adoConn
        ’// 类型为存储过程,adCmdStoredProc = 4
        .CommandType = 4
        ’// 存储过程名称
        .CommandText = "upGetUserName"
        ’// 设置用户编号
        .Parameters.Item("@intUserId").Value = 1
        ’// 执行存储过程
        .Execute
        
        ’// 取得从存储过程返回的用户名称
        Response.Write "用户名:" & .Parameters.Item("@ostrUserName").Value
End With
’// 释放对象
Set adoComm = Nothing

  通过以上两步,我们已经可以创建和使用简单的存储过程了。下面我们来看一个稍微复杂点的存储过程,以进一步了解存储过程的应用。
 

时间: 2024-10-04 11:09:21

SQLSERVER存储过程及调用详解的相关文章

.NET的动态编译与WS服务调用详解

这篇文章介绍了.NET的动态编译与WS服务调用详解,有需要的朋友可以参考一下,希望对你有所帮助       动态编译与WS服务,有关系么?今天就乱弹一番,如何使用动态编译动态生成WS服务调用的代理类,然后通过这个代理类调用WS服务.     首先,动态编译这玩意在.NET里面是非常简单的,实际上只涉及到两个类型:CodeDomProvider以及CompilerParameters他们都位于System.CodeDom.Compiler命名空间.     以下代码可将源码动态编译为一个程序集:

android-Android WebView的调用详解

问题描述 Android WebView的调用详解 在android端机器上如何使用WebView组件显示html网页,及android与js端的交互?求大神指点! 解决方案 Android WebView详解Android WebView详解之JS调用Java方法 解决方案二: 开发详解(一)" rel="nofollow">http://blog.csdn.net/typename/article/details/39030091http://blog.csdn.n

mysql5存储过程入门创建,删除,调用详解

一.创建存储过程 1.基本语法: create procedure sp_name() begin ......... end   2.参数传递 二.调用存储过程 1.基本语法:call sp_name()  CALL语句(存储过程的调用) CALL 存储过程名(参数列表)   CALL语句调用一个先前用CREATE PROCEDURE创建的程序. CALL语句可以用声明为OUT或的INOUT参数的参数给它的调用者传回值. 存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 注意:存储过程名

javascript ajax脚本跨域调用详解

今天终于有点时间研究了一下javsscript ajax 脚本跨域调用的问题,先在网上随便搜了一下找到一些解 决的办法,但是都比较复杂.由是转到jquery.chm用户手册当中找到一些代码片段关于ajax跨域调用的问题. 代码片段如下: crossDomain   mapV1.5 默认: 同域请求为false 跨域请求为true如果你想强制跨域请 求(如JSONP形式)同一域,设置crossDomain为true.这使得例如,服务器端重定向到另一个域. 这 里强调如是ajax的跨域调用,data

ms sql server中存储过程入门教程详解

一.存储过程的概念 T-SQl和C语言一样 ,是一门结构化的语言. 什么是存储过程? 存储过程是SQL查询语句与控制流程语句的预编译集合,并以特定的名称保存在数据库中.存储过程也是数据库对象 分类: 系统存储过程: 以sp_或xp_打头 用户自定义  :以proc_打头 存储过程的优点: 执行速度快 效率高 模块式编程  减少网络流量     提高安全性 二.系统存储过程 SQl server 的系统存储过程保存在master数据库中,且所有命名的系统存储过程命名以"Sp_"开头.在m

MySql存储过程与函数详解

存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输.一.存储过程1.1.基本语法 CREATE PROCEDURE sp_name ([proc_parameter[,...]])    [characteristic ...] routine_body   Sp_name:存储过程的名称

Ajax异步调用详解实例解析

Ajax更着重在前端页面异步显示后台数据库里的字段, 主体思想与上篇相似,重点是DAL层得到存储过程中返回的表集合DataSet,在一般存储过程中拼接字符串时,将表一行的数据分别做成键值对的形式 1.前端页面包含脚本(ajax)和基本的HTML标记 以方便大家对应查找和理解  代码如下 复制代码  function InitData() {                                            //页面加载时调用此事件              $.ajax({

js函数在frame中的相互调用详解

 一个HTML页面可以有一个或多个子框架,这些子框架以<iframe>来标记,用来显示一个独立的HTML页面.这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量.调用其他框架内的函数.控制另一个框架中表单的行为等 框架间的互相引用   一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames就表示该页面内所有框架的集合,这和表单对象.链接对象.图片对象等是类似的,不同的是,这些集合是do

ASP程序与SQL存储过程结合使用详解

定义总是很抽象.存储进程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL SERVER).如果我们通过创建存储进程以及在ASP中调用存储进程,就可以避免将SQL语句同ASP代码混杂在一起.这样做的好处至少有三个:    第一.大大提高效率.存储进程本身的执行速度非常快,而且,调用存储进程可以大大减少同数据库的交互次数.    第二.提高安全性.假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密.    第三.有利于SQL语句的重用