存儲過程經典實例

1.任意輸入三個數,輸出最大的數

 create proc Pr_Test
  @x1 int,
  @x2 int,
  @x3 int
as
  begin
    declare @max int
    if(@x1>@x2)
      set @max=@x1
    else
      set @max=@x2
    if(@x3>@max)
      set @max=@x3

   print '三個數中最大的數是:'+cast(@max as varchar(50))
 end

在正確輸入後,執行後就創建了這個存儲過程,

下面來執行這個存儲過程,任意輸入三個數字,具體代碼如下:

execute Pr_Test 50,31,48

執行存儲過程

結果如下:

三個數中最大的數是:50

2.階乘之和(如:5!+4!+3!+2!+1!)

create proc Pr_jc
  @x int
as
  begin
   declare @i int,@cj int,@sum int
   select @i=1,@cj=1,@sum=0             
   while @i<=@x                                  
     begin   
      set @cj=@cj*@i                            
      set @sum=@sum+@cj                  
      set @i=@i+1                                 
     end
   print cast(@x as varchar(50))+'階乘之和是:'+cast(@sum as varchar(50))
  end

執行該存儲過程

exec Pr_jc 5

結果如下:

5階乘之和是:153

3.登錄系統存儲過程

create proc Pr_denglu
  @hyuser varchar(50),
  @hypwd varchar(50)
as
begin
declare @msg varchar(50)
if(@hyuser='hystu1')
   begin
     if @hypwd='111'
        set @msg='用戶名與密碼正確,登錄成功!'
     else
        set @msg='密碼不正確,請重新輸入'
   end
else if(@hyuser='hystu2')
   begin
     if @hypwd='222'
        set @msg='用戶名與密碼正確,登錄成功!'
     else
        set @msg='密碼不正確,請重新輸入'
   end
else if(@hyuser='hystu3')
   begin
     if @hypwd='333'
        set @msg='用戶名與密碼正確,登錄成功'
     else
        set @msg='密碼不正確,請重新輸入'
   end
else
   set @msg='用戶名不正確,請重新輸入'
print @msg

end

執行該存儲過程

exec Pr_denglu 'hystu1','111'

結果如下:

用戶名與密碼正確,成功登錄!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章