注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

薛沛然 廊坊师范学院 九期信息技术提高班

无脑地生活,像白痴一样成长,不给自己留感伤的时间。。。

 
 
 

日志

 
 

菜鸟学习存储过程  

2013-08-03 16:15:35|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 存储过程(Stored Procedure)是在数据库中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

相比普通的sql语句,存储过程一共有5大优点点

1可以被多次使用,提升了代码的复用性

存储过程在被创建后可以在程序中多次被调用,而不必重新编写该存储过程。可以对存储过程中的语句进行修改,极大提升了代码复用性

2运行速度快

如果某一操作包含了大量的sql语句,那么存储过程执行的速度会比普通的sql语句快很多。因为普通的sql语句需要进行编译和优化多次。而存储过程在建立完成后只需要预编译和优化一次就够了。与普通相比,节省了很多时间

3存储过程能够减少网络流量

存储过程把大量sql语句留在了数据库内部,使用时只需要传递参数即可。而普通的sql语句需要把参数和sql语句一起传递给数据库,因此相比存储过程,sql语句增加了网络负担,使系统运行速度降低。

4存储过程更安全

系统管理员可以对执行某一存储过程的权限进行限制,从而避免非授权用户对数据的访问和保证数据的安全

5灵活

这是我最喜欢的一个优点。在上网查询资料的时候,看到大神们灵活地将存储过程和其他数据库技术相结合。比如存储过程和多表联合查询的结合,存储过程和视图的结合等等。将存储过程的灵活性发挥得淋漓尽致。

存储过程的缺点

1将大量的sql语句放在了数据库中,数据库服务器的负担加大。

2可移植性差

由于存储过程将应用程序绑定到sql server中,因此使用存储过程将限制应用程序的可移植性。比如说换个数据库什么的,就得掂量着办

3大量的参数和返回值

由于是处理批量处理数据的,因此,存在着大量的参数。在调试时很麻烦。

总结

当遇到需要执行多条sql语句时以及处理多张表的数据时,存储过程的使用极为必要,但是如果不建议大量使用。因为大量使用存储过程不仅会降低程序的可移植性,还会增加代码维护的复杂度。

下面通过一个小例子来对存储过程入门

菜鸟学习存储过程 - 薛沛然 - 薛沛然 廊坊师范学院 九期信息技术提高班

 右击可编程性,创建新存储过程

菜鸟学习存储过程 - 薛沛然 - 薛沛然 廊坊师范学院 九期信息技术提高班
 建完过程后不要忘了按f5进行编译,要不然就白辛苦了

 下面是代码中队存储过程的使用

Public Sub run()
        Dim sqrSql As String = "Data Source=(local);Initial Catalog=Charge;User Id=sa;Password=123456;"
        '连接数据库字符串
        Dim myConn As SqlConnection = New SqlConnection(sqrSql)
        '为sqlconnection对象赋值
        myConn.Open()
        '连接数据库
        Dim cmd As SqlCommand = New SqlCommand()
        '创建sqlcommand对象
        cmd.Connection = myConn
        '为cmd对象赋值
        cmd.CommandType = CommandType.StoredProcedure
        '制定cmd类型
        cmd.Parameters.Add("@condition1", SqlDbType.VarChar)
        cmd.Parameters.Add("@condition2", SqlDbType.VarChar)
        cmd.Parameters("@condition1").Value = "1"
        cmd.Parameters("@condition2").Value = "8"
        '为存储过程中的参数赋值
        cmd.CommandText = "keke"
        '制定存储过程的名字
        Dim datasett As DataSet = New DataSet()
        '创建dataset对象
        Dim data As SqlDataAdapter = New SqlDataAdapter(cmd)
        '创建dataadapter对象
        data.Fill(datasett)
        '填充
        data.Dispose()
        cmd.Dispose()
        '清除缓存
        myConn.Close()
        Dim sa As String = datasett.Tables(0).Rows(0)(0)
        '将第一个select语句所获得的表的第一行的第一个字段数据赋给sa
        Dim sb As String = datasett.Tables(1).Rows(0)(0)
        '将第二个select语句所获得的表的第一行的第一个字段数据赋给sb
    End Sub

第一次接触存储过程,就先学这么多,以后有时间再对存储过程的使用进行进一步深入。

  评论这张
 
阅读(190)| 评论(10)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017