zoukankan      html  css  js  c++  java
  • MS SQL中的return&output的學習

    /*output的應用*/
    CREATE PROCEDURE [dbo].[sp_output]
    (
       
    @i char(1)='1',
       
    @a varchar(5)=null output
    )
     
    AS
    begin
      
    if(@i='1')
        
    set @a='aaaaa'
      
    else
        
    set @a='bbbbb'
    end
    GO
    /*存儲過程內調用*/
    CREATE PROCEDURE [dbo].[test_output]
    (
      
    @i char(1)='1'
    )
     
    AS
    begin
      
    declare @b varchar(5)
      
    exec sp_output @i,@b output
      
    print @b
    end
    GO
    /*sql script 調用*/
    declare @a varchar(5)
    exec sp_output '2',@a output
    print @a

    /*return的應用*/
    CREATE PROCEDURE [dbo].[sp_return]
    (
       
    @i char(1)='1'
    )
     
    AS
    begin
      
    /*
      --return只能返回一個int類型的值,相反output則可以傳回更多類型的值
      無條件退出查詢或程序。RETURN 是立即而完整的,而且可在任何時刻用於退出程序、批次,或陳述式封鎖。
      其中附隨有 RETURN 的陳述式不會被執行。
      
    */
      
      
    if(@i='1')
        
    return 1
      
    else
        
    return 0
    end
    GO

    /*存儲過程內調用*/

    CREATE PROCEDURE [dbo].[test_return]
    (
      
    @i char(1)='1'
    )
     
    AS
    begin
      
    declare @b varchar(5)
      
    exec @b=sp_return @i
      
    if (@b=1)
        
    print('aaaaa')
      
    else
        
    print('bbbbb')
    end
    GO

    /*sql script 調用*/
    declare @b int
    exec @b=sp_return '1'
    if (@b=1)
      
    print('aaaaa')
    else
      
    print('bbbbb')

    /*return & output同時應用*/
    CREATE PROCEDURE [dbo].[sp_output_return]
    (
       
    @i char(1)='1',
       
    @a varchar(5)=null output
    )
     
    AS
    begin
      
    if(@i='1')
      
    begin
        
    set @a='aaaaa'
        
    return 1
      
    end
      
    else
      
    begin
        
    set @a='bbbbb'
        
    return 0
      
    end
    end
    GO

    /*存儲過程內調用*/
    CREATE PROCEDURE [dbo].[test_output_return]
    (
      
    @i char(1)='1'
    )
     
    AS
    begin
      
    declare @b int
      
    declare @a varchar(5)
      
    exec @b=sp_output_return @i,@a output
      
    print(@a)
      
    print(@b)
    end
    GO


    /*sql script 調用*/
    declare @a varchar(5)
    declare @b int
    exec @b=sp_output_return '1',@a output
    print @a
    print @b

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    34. 在排序数组中查找元素的第一个和最后一个位置
    153. 寻找旋转排序数组中的最小值
    278. 第一个错误的版本
    540. 有序数组中的单一元素
    744. 寻找比目标字母大的最小字母
    69. x 的平方根
    763. 划分字母区间
    53. 最大子序和
    665. 非递减数列
    Zabbix探索:Agent配置中Hostname错误引起的Agent.Ping报错
  • 原文地址:https://www.cnblogs.com/Athrun/p/1216682.html
Copyright © 2011-2022 走看看