0

0

ASP 调用sqlserver存储过程学习教程

php中文网

php中文网

发布时间:2016-06-07 15:33:46

|

1884人浏览过

|

来源于php中文网

原创

一、我先来来说一说调用存储过程的优点与缺点: 1、SQL语句已经预编绎过了,因此执行效率、性能大大增加。 2、可以接受参数、输出参数、返回单个或多个结果集以及返回。可以向程序返回错误原因。 3、减少网络流量。如:执行插入记录这个功能时只要传输存储过

一、我先来来说一说调用存储过程的优点与缺点:

      1、SQL语句已经预编绎过了,因此执行效率、性能大大增加。

      2、可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。

      3、减少网络流量。如:执行插入记录这个功能时只要传输存储过程名、参数和这些参数的数值即可。免去写一大串操纵的SQL语句。

我们将会发现要是网络速度慢时这个是多么的有用,即减少对客户机的压力,又可以简化一系列复杂语句。  

      4、减少注入式攻击。存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。  

      5、存储过程可以在单个存储过程中执行一系列SQL语句,存储过程内还可以嵌套其它存储过程。

      6、有利于SQL语句的重用。

 7、更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,

而这些改动不会对应用程序造成影响。

 8、 布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制

 

 

当一个业务同时对多个表进行处理的时候采用存储过程比较合适。

  1. 使用存储过程在一般情况下会提高性能,因为数据库优化了存储过程的数据访问计划并应用缓存方便以后的查询;
  2. 存储过程单独保护存在于数据库中。客户端可以获取权限执行存储过程,而不需要对底层的具体表设置其他的访问权限;
  3. 存储过程会使得维护起来更加方便,因为通常修改一个存储过程要比在一个已经发布的组件中修改SQL语句更加方便;
  4. 存储过程给底层数据格式增添了额外的抽象层。使得使用存储过程的客户端对存储过程的实现细节以及对底层数据格式是隔离独立的;
  5. 存储过程能够缓解网络带宽,因为可以批量执行SQL语句而不是从客户端发送超负载的请求。

        复杂的数据处理用存储过程,如有些报表处理。

        多条件多表联合查询,并做分页处理,用存储过程也比较适合。

        适当的使用存储过程,能够提高我们SQL查询的性能,以便于提高我们的工作效率。本文就介绍这么多了,希望本次的介绍能够对您有所收获!

 

 

存储过程的缺点:

      1.可移植性差,我一直采用sql server开发,可是如果想卖自己的东西,发现自己简直就是在帮ms卖东西,呵呵。想换成mysql,确实移植麻烦。

     2.采用存储过程调用类,需要进行两次调用操作,一次是从sql server中取到过程的参数信息,并且建立参数;第二次才是调用这个过程。多了一次消耗。

不过这个缺点可以在项目开发完成,过程参数完全确定之后,把所有过程参数信息倒入到一个xml文件中来提高性能。

 

二、下面讲解一下存储过程的调用与创建:

 

第一步:创建存储过程

---创建存储过程模版
create  PROCEDURE [存储过程名称]
@param nvarchar(4)---存储过程参数
 AS
 set nocount on
 declare @SQL nvarchar(1000)
set @SQL='        存储过程要执行的sql语句         '
Exec sp_executesql  @SQL -----执行sql语句

我先创建一个现象一个表所有内容的存储过程:

JRJJ企业网站管理系统
JRJJ企业网站管理系统

企业网站.net管理系统,采用三层结构开发,网页编辑器用的是FCKeditor,数据库操作采用的是存储过程学习作品,参照N-Layered Web Applications with ASP.NET 3.5文章及源码码发

下载

-------创建
CREATE PROCEDURE [KS_ShowContent]
@TableName nvarchar(50)
AS
set nocount on
declare @sql nvarchar(1000)
 set @sql='Select  * From '+@TableName

Exec sp_executesql  @SQL

第二步:调用储调用存储过程

调用存储过程的方式有两种:

第一种调用方式:
     Set rs=Conn.Execute("存储过程名称 参数")

     比如调用[KS_ShowContent]存储过程:

     Set rs=Conn.Execute("KS_ShowContent UserTabl")---UserTabl 是一个表名称
     do while not rs.eof

         id=rs("id")

          rs.movenext

    loop

     rs.close : set rs=nothing

第二种调用方式:

       Dim Cmd : Set Cmd = Server.CreateObject("ADODB.Command")
    Set Cmd.ActiveConnection=conn
    Cmd.CommandText="KS_TSql"'存储过程名称
    Cmd.CommandType=4 
    CMD.Prepared = true  
    Cmd.Parameters.Append cmd.CreateParameter("@SQL",200,1,8000,SQLStr)'设置参数和设置参数的值
    Set Rs=Cmd.Execute
    set Cmd = nothing
     do while not rs.eof

         id=rs("id")

          rs.movenext

    loop

     rs.close : set rs=nothing

      ----------注释
    CreateParameter (Name, Type, Direction, Size, Value)
   ·Name 可选,字符串,代表 Parameter 对象名称。 
   ·Type 可选,长整型值,指定 Parameter 对象数据类型。 bigInt:20;Binary:128;boolean:11;Char:129;BtimeStamp:135;Empty:0;Integer:3;
    SmallInt:2;TinyInt:16;VarChar:200;advarchar 202 未编码字符串变量值
    ·Direction 可选,长整型值,指定 Parameter 对象类型。 0:表示污染确定 ;1:表示输入参数;2:表示输入参数;3:表示输入或输出参数;4:表示返回值 
    ·Size 可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。 
    ·Value 可选,变体型,指定 Parameter 对象值。
       CommandType 设置值不同,CommandText的意思也不同:
       -1 表明CommandText 参数类型无法确认
        1 表明CommandText 参数是一般的命令
        2 表明CommandText 参数是一个存在的表名称
        4 表明CommandText 参数是一个存在的存储过程

 

 

 

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ASP 教程
ASP 教程

共34课时 | 3.1万人学习

PHP课程
PHP课程

共137课时 | 8.2万人学习

ASP参考手册
ASP参考手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号