存储过程 HAPPY!!!!

为什么需要存储过程

1)数据不安全.网络传送SQL代码,容易被未授权者截获.

2)每次提交SQL代码都要经过语法编译后在执行,影响应用程序的运行性能.

3)网络流量大.对于反复执行的相同的SQL代码,将会在网络上多次传送增加网络传输量

什么是存储过程

      存储过程(Procedure)是SQL语句和控制语句的预编译集合,保存在数据库里,可由应用程序

调用执行,而且允许用户声明变量,逻辑控制语句及其他强大的编程功能

      存储过程可以包含逻辑控制语句和数据操作语句,他可以接收参数,输出参数,返回单个或多个结果集及返回值.

      存储过程可以包含一条SELECT语句;也可以包含一系列使用控制流的SQL语句

存储过程的优点

1)执行速度快,效率高

2)减少网络流量

3)具有良好的安全性

存储过程的分类

1)系统存储过程(System Stored Procedures)

2)用户自定义的存储过程(User-defined Stored Procedures)

调用存储过程的语法:

EXEC [UTE] 存储过程名 [参数值]

其中,EXEC是EXECUTE的简写

用户自定义的存储过程

下面是一段使用C#语言自定义方法的代码

int    sun (int  a,int  b)

{

    int s;

    s=a+b;

    return s;

}

创建不带参数的存储过程

创建存储过程语法

CREATE  PROC [EDURE]    存储过程名

             [{@参数1   数据类型}   [=默认值]    [OUTPUT],

             .....

             {@参数n     数据类型}  [=默认值]     [OUTPUT] 

            ]

AS

     SQL语句

删除存储过程

语法:

OROP  PROC[EDURE]   存储过程名

检测存储过程是否已经创建

语法:

IF  EXISTS  (SELECT * FROM  sysobjects  WHERE  name =存储过程名 )

    DROP  PROCEDURE  存储过程名

GO

创建带输入参数的存储过程

存储过程中的参数分为两种:

1) 输入参数:可以在调用时向存储过程传递参数,此类参数可用来向存储过程中传入值

2)输出参数:如果希望返回值,则可以使用输出参数,输出参数后有"OUTPUT"标记,执行存储过程后,将把返回值存放在输出参数中,可供其他T-SQL语句读取访问.

创建带参数的存储过程

如果存储过程的参数后面有"OUTPUT"关键字,则表示此参数为输出参数;否则视为输入参数,输入参数还可以设置为默认值.

执行带参数的存储过程

语法

EXEC[UTE]  [返回变量=]  存储过程名  [@参数1=]参数值1  [OUTPUT]  |  [DEFAULT],

                                                    ......,

                                                    [@参数1=]参数值n  [OUTPUT]  |  [DEFAULT]

其中,OUTPUT表明参数是输出参数,DEFAULT表示参数的默认值

处理错误信息

RAISERROR

在存储过程中,可以使用PRINT语句显示用户定义的错误信息.但是,这些信息是临时的,且只能显示给用户.

RAISERROR返回用户定义的错误信息时,可指定严重级别,设置系统变量记录所发生的错误

 

 

posted on 2016-03-13 21:43  萧瑟的风  阅读(172)  评论(0编辑  收藏  举报

导航