一般存储过程定义包括如下几部分:
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