存储过程的一般定义

来源:互联网 发布:淘宝退货怎么包装 编辑:程序博客网 时间:2024/04/20 01:07

一般存储过程定义包括如下几部分:

1. 存储过程名称

CREATE PROCEDURE procedure_name  

或者:Create  proc  procedure_name

 

2.参数,输入参数,输出参数

@parameter_name1  int          //输入参数定义,包括名称,类型及长度

@parameter_name2= defual_value  varchar80  //输入参数,带默认值

@parameter_out  int   output                  //输出的参数

 

 

AS  //as后面部分是存储过程具体内容

 

3.内部参数定义,定义方式如2,需定义名称及,类型,长度

Declare      

@Parameter_inter1  int

@Parameter_inter2   varchar(30)

 

4.初始化内部参数:

Set @Parameter_inter1 =5,

//可以取得需要的值以存在內部參數中:

 SELECT @parameter_inter2=table.column FROM table WHERE …….

 

5.具体操作语句,一般都包括以下几种流程控制语句(if else | select case | while )

 

  ===============Select ... CASE(多条件) 实例:============ 

 DECLARE @iRet INT, @PKDisp VARCHAR(20)

    SET @iRet = '1'

    Select @iRet =

    CASE

        WHEN @PKDisp = '' THEN 1

        WHEN @PKDisp = '' THEN 2

        WHEN @PKDisp = '' THEN 3

        WHEN @PKDisp = '' THEN 4

        WHEN @PKDisp = '' THEN 5

        ELSE 100

 END

========== While(循环) 实例:====================

    DECLARE @i INT

    SET @i = 1

    WHILE @i<1000000

BEGIN

        set @i=@i+1   //更改条件,比做

    END

    -- 打印

    PRINT @i

============= If(单条件)处理例子:================

 

IF @strTO<>''    //条件

 BEGIN

UPDATE UNIT SET UNIT_NAME=REPLACE(UNIT_NAME,'*','')

WHERE UNIT_CODE=@strTO

END

ELSE   BEGIN

UPDATE UNIT SET UNIT_NAME=UNIT_NAME+'*' WHERE UNIT_CODE='011'

END

 

6.最后是

Go

 

 

 

使用存储过程:

Execute   procedure_name

带参数为:

Execute  procedure_name  parameter1_value’,’paramerter2_ value’

或者:

Exec  procedure_name   paramerter1=’parameter1_value’,

parameter2=’ paramerter2_ value’

 

专业参考:http://software.it168.com/manual/sqlserver/