代码改变世界

Sql Server 存储过程

2013-05-27 20:31  hduhans  阅读(157)  评论(0)    收藏  举报

1.存储过程基本格式

CREATE PROC 存储过程名 --PROCEDURE 可简写为 PROC
/*
    这里写存储过程执行时外部传入的参数,格式 ①名称 ②类型(包括长度) 
    多个参数用英文逗号(,)间隔,最后一个参数不用添加
    如:@username varchar(50),
        @age int,
        @lev    
*/
AS
DECLARE 
/*
    这里定义内部参数,格式同外部参数一样
    定义参数后可以对其进行初始化,使用关键字Set
    如:@rankname varchar(50)
        SET @rankname = '技术员'     
*/
BEGIN TRANSACTION   --事务,其中发生任何错误,事务都会回滚,不会提交
/*
    事务具体处理代码
*/
COMMIT TRANSACTION
RETURN
GO

/*一个例子*/
create Proc myPro
@username varchar(50),
@age int@lev int
as 
declare
@rankname varchar(50)
SET @rankname = '技术员'
begin transaction
    if @lev<5
        Begin 
            set @rankname='普通技术员'
        end
    else
        Begin 
            set @rankname='高级技术员'
        end
    insert into users(username,age,lev,rankname) values(@UserName,@age,@lev,@rankname)
Commit transaction
return
GO

 2.基本语句格式

  ① if else

if 条件 
    begin 
        执行语句一
    end
else
    begin
        执行语句二
    end

/**/
if @mode=1 
    begin 
        print 'mode=1'
    end 
else
    begin 
        print 'mode=2'
    end
View Code

  ② select case 

select 要赋值的变量 =
case 
    when 条件一 then 值1
    when 条件二 then 值2
    when 条件三 then 值3
    else 默认值
end

/**/
select @i = 
case 
    when @b='' then 1
    when @b='' then 2
    when @b='' then 3
    when @b='' then 4
    else 88
end 
View Code

    ③ while

set 变量初始值
while 循环判断条件 begin
    执行语句
end

/**/
set @i=1
while @i<100 begin
    set @i=@i+1
end
View Code