SQL Server之存储过程

     曾经做过一个管理系统,说到管理系统,毫无疑问的离不开数据库的操作。由于没有什么项目的经验,菜鸟一个,所以在涉及到SQL语句时,没头没脑的就在服务器代码里面写了SQL语句(如下),然后再传送给服务器去执行,殊不知这样会大大增加数据库的解析执行压力。

     SqlDataAdapter da1 = new SqlDataAdapter("Select * From Department", conn);

     string insert = "Insert Regis(Name,UserName,Sex,Teacher,BirthDay,Tel,Email,OutTime,ClassNum,Department,Major,Job,Career,PostNum,OfficePhone,Province,City,Address,QQ,ColOrStudy,Plus) values (@Name,@UserName,@Sex,@Teacher,@BirthDay,@Tel,@Email,@OutTime,@ClassNum,@Department,@Major,@Job,@Career,@PostNum,@OfficePhone,@Province,@City,@Address,@QQ,@ColOrStudy,@Plus)";

     虽然当时也认为这样写不好,可是却不知道怎么解决,今天上课时,讲师刚好讲到了这里,然后记录下来了,保存下来以后慢慢体会。

      存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

      很明显的,因为在运行存储过程之前,数据库已经对其进行了语法和句法分析,并给出了优化的执行方案,所以可以很快速的执行,而且另一方面,由于从业务逻辑层(服务器)在联系数据库的过程中,传送的字符串也大大减少,从而降低了网络的通信量。

      一个用于更新的带参数存储过程如下:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[Student_AddWithParams]  ----如果是创建存储过程则用 CREATE
(
 @Name nvarchar(50),
 @Pwd nchar(10),
 @Teacher nvarchar(50),
 @Email nvarchar(50),
 @Age int                         ------参数列表
)
AS
BEGIN
   INSERT INTO Student
   (
    [Name],
    Pwd,
    Teacher,
    Email,
    Age
   )
   VALUES
   (
        @Name,@Pwd,@Teacher,@Email,@Age   ----要传递的参数
   )
  
END

EXECUTE Student_AddWithParams 'lw','465546','C','fjsdkl@qq.com','22' ----执行上面的存储过程

 

以上是今天刚了解的,还是比较浅,对于SQL的流程控制,还有其他有关性能的,比如索引,数据库分页等等,明天上完课再行整理。

转载于:https://www.cnblogs.com/lw926/archive/2010/08/03/1791502.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值