SQL存储过程

SQL存储过程

以Student表为例

Sid     Sname

1         张三

2         李四

 

1、无参数无返回值的存储过程

  创建:   create   proc  stuproc     //  stuproc  是存储过程的名称

                as                  //  as  不可以省略

                begin             //  begin  和  end 是一对   不可以只写其中的一个,可以都不写

                    select   Sid,Sname   from   Student

                 end

                 go                 //  以go结尾

  

 调用:exec  stuproc

2、有参数无返回值的存储过程

         定义一个全局变量  也称外部变量,在函数的外部定义的,他的作用域从变量定义处开始,到本程序文件的末尾

  创建:   create   proc  stuproc     //  stuproc  是存储过程的名称

                @Sname  varchar(20)  //  定义一个全局变量

                as                  //  as  不可以省略

                begin             //  begin  和  end 是一对   不可以只写其中的一个,可以都不写

                    select   Sid,Sname   from   Student   where  Sname=@Sname

                 end

                 go                 //  以go结尾

  

调用:exec  stuproc  ‘ 李四 ’  

     以上是在外部给变量赋值,也可以在内部给变量赋值

 创建:   create   proc  stuproc    

                @Sname  varchar(20)=  ‘ 李四 ’

                as              

                begin            

                    select   Sid,Sname   from   Student  where Sname=@Sname

                 end

                 go              

  

    调用:exec  stuproc

3、有参数有返回值(多个参数的时候用   ,   隔开)

   创建:  create    proc   stuproc

                @Sname varchar(20)  ,

                @a  varchar(20)  output

                as

                 if exists (select   Sid,Sname   from  student    where    Sname=@Sname) 

                 set   @a =  ' 1 '

                 else   set   @a = '  0 '

调用: declare  @a  varchar(20)

            exec  stuproc  '李四'  ,@a  output

            select   @a

以上是全局变量,下面是局部变量

局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部,离开该函数后在使用这种变量是非法的。

  局部变量的定义:必须先用declare命令以后以后才可以使用     declare{ @变量名  数据类型 }

  局部变量的赋值方法:set  { @变量名= 表达式}  或者  select  { @变量名  = 表达式  }

  局部变量的显示  select   @变量名

 

 

 

以表 bbb  为例

id  name    pwd

1    Lily       111

2    Tim       222

 

使用存储过程做登陆

 

//创建一个存储过程Login
create proc Login
@name varchar(20),     //定义参数变量
@a varchar(max) output     //定义输出变量
as
begin
if exists (select   pwd   from   bbb   where    name=@name)      //判断是否存在
set   @a=(select    pwd    from    bbb    where   name=@name)    //如果存在输出密码
else   set @a = ' 0 '    //如果不存在返回 ‘ 0 ’
end
go

 

//调用存储过程

declare   @a   varchar(max)   //声明@a变量
exec   Login   ' Lily '  ,  @a  output
select   @a

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值