存储过程的一般定义

12/22/2009来源:SQL教程人气:11282

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

1. 存储过程名称

CREATE PROCEDURE procedure_name  

或者:Create  proc  procedure_name



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

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

@parameter_name2= defual_value  varchar(80)  //输入参数,带默认值

@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’






本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bestxulei/archive/2009/12/22/5053562.aspx