zoukankan      html  css  js  c++  java
  • ASP.Net学习之常用SQL存储过程(1)

    在ASP.Net项目中使用存储过程,首先可以提高数据库的安全性,其次可以提高运行SQL代码运行的速度,在大型项目中一般是必不可少的。Visual Studio.Net为SQL的存储过程提供了强大的支持,您既可以通过visual studio.net来新建存储过程,也可以直接在Sql Server的查询分析器中运行,还可以通过企业管理器创建,使用起来也非常方便。大家一直都误认为SQL存储过程是一个比较“高深”的技术,其实掌握一般的语法是没有什么大问题的,而我们在使用存储教程中也主要是增删减的操作,学会使用一般的T-SQL就很容易上手了。
    我们先来看一下在Sql-server中是如何创建一个存储过程的吧,我们可以使用SQL命令语句创建,也可以通过SQL server中的企业管理器来创建,但其实都是离不开自己写语句的,当然系统存储过程我们就不用去动它了(存储过程分为系统存储过程 ,本地存储过程,临时存储过程,远程存储过程,扩展存储过程),而本地存儲過程就是我們自己編寫的存储过程,其实也叫用户存储过程。

    当创建存储过程时需要确定存储过程的三个组成部分
    所有的输入参数以及传给调用者的输出参数
    被执行的针对数据库的操作语句包括调用其它存储过程的语句
    返回给调用者的状态值以指明调用是成功还是失败
    一、存储过程创建
    1.用企业管理器来创建存储过程;
    我们先打开企业管理器,找到我们要创建存储过程的数据库,如图一:


    按此在新窗口打开图片


    我们可以看到,在数据库里面有一个存储过程的项目,我们要用到的就是它了,选中存储过程这项,我们可以看到数据库中里面本身就有很多存储过程存在的了,不过这些都是数据库本身自带的,我们可以看到他的类型是系统(如图二),如果我们自己创建的存储过程,类型就是用户了.


    按此在新窗口打开图片

    在控制树的左边,我们选中存储过程后单击鼠标右键,可以看到有一个“创建存储过程的选项”


    按此在新窗口打开图片


    选中这项,就会出现新的窗口了,这个窗口就是用来写存储过程的了


    按此在新窗口打开图片

    在实际运用过程中,我们所创建的存储过程并不是想像中的这么复杂,而上面的这些参数也不是都要用上,但一般我们在用查询分析器创建存储过程前,都会通过下面这条语句来查询一下,在数据库中是否已经存在相同命名的存储过程,如果存在的话,则先删除。

    If exists(select name from sysobjects where name=’存储过程名’ and type=’p’)
    Drop procedure ‘存储过程名’
    Go

    在这里,我们也就知道了如何删除一个存储过程了,就是用drop procedure关键字 + 存储过程名.

    我们先列举几个常见的存储过程:

    a.    没有使用参数的存储过程
    /*
    用途:查询所有的公司名录
    德仔创建于2006-3-29
    */
    create procedure com_select
    as
    select * from Company
    GO

    b.    有参数的存储过程
    /*
    选择对应的admin
    创建者:德仔
    创建日期:2006-4-20
    */
    create procedure admin_select
    @adminusername char(50),
    @adminpassword char(50)
    as
    select * from superadmin where
    [Admin_Name]=@adminusername and [Admin_Password]=@adminpassword
    GO


    c.    在该存储过程中使用了OUTPUT 保留字有返回值的存储过程
    create procedure salequa
     @stor_id char 4 ,
    @sum smallint output
    as
    select 
    ord_num, ord_date,
     payterms, title_id,
     qty
    from sales
    where stor_id = @stor_id
    select @sum = sum qty
    from sales
    where stor_id = @stor_id
    go

    上面的几个存储过程是基本的存储过程,同时我们可以看到在存储过程中注释是用/* 注释 */形式.

    我们下一次再讲讲存储过程在net中的使用吧

    声明:转自 http://www.dezai.cn/.
  • 相关阅读:
    无废话ExtJs 入门教程三[窗体:Window组件]
    无废话ExtJs 入门教程四[表单:FormPanel]
    无废话ExtJs 入门教程一[学习方法]
    无废话ExtJs 入门教程五[文本框:TextField]
    关于飞思卡尔xs128的IO端口
    can总线学习(二)
    D触发器的二分频电路
    第一天在公司
    can总线学习(一)——初识can总线
    SP debug info incorrect because of optimization or inline assembler
  • 原文地址:https://www.cnblogs.com/flys5200/p/1166618.html
Copyright © 2011-2022 走看看