• SQL中存储过程out与output有什么不


    以下是脚本内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    --SQLQuery Create By Faywool
     
     
     
     
    create proc Proc_OutPutTest--创建
    @numA int,--numA为存储过程的参数
    @numB int,--numB为另一参数
    @numReturn int output--此为Output,也就是存储过程的返回值
    as
    begin
    if(@numA>@numB)
        set @numReturn=@numA
    else
        set @numReturn=@numB --A>B的时候返回A,否则返回B
    end
     
    go
     
     
    declare @numReceive int --先声明一个变量用来接收存储过程的返回值
    exec Proc_OutPutTest 1,2, @numReceive output
    --调用存储过程并用@numReturn接收存储过程的返回值
    select @numReceive--将会返回(1,2)中较大的数字:2
     
    go
     
    create proc Proc_OutTest--新建存储过程
    @numC int,--参数C
    @numD int,--参数D
    @numE int out--参数E用来返回
    as
    begin 
        if(@numC>@numD)
            set @numE=@numC--如果C>D,将C赋值给E
        else 
            set @numE=@numD--否则将D赋值给E
    end
      
    go
     
     
    declare @numOutReceive int--声明一个变量
    set @numOutReceive=10000--将变量赋值为10000
    select @numOutReceive--变量变为10000
    exec Proc_OutTest 1,2, @numOutReceive out--将(1,2,@numOutReceive)三个数字传入存储过程
    select @numOutReceive--再看变量就变成2了
     
     
     
     
    --总结:
     
    --Out是参数,传进、传出,缺一不可,在存储过程定义的时候一定要有out标识,
    --在调用该存储过程的时候也要有out标识
     
     
    --OutPut则是相当于存储过程的返回值
    --不用传进,也不能传进
    --它是在存储过程中定义,并且输出的
     
    --   一句话:Out相当于C#中的ref参数(传进、传出缺一不可),而且传进传出的时候都要标识为ref
    --           OutPut则为C#中的方法返回值类型,在方法定义时就已经定好了
  • 相关阅读:
    cs231n.stanford.edu
    cs229.stanford.edu
    Boost circular_buffer example
    OI中一些常见实用的套路【更新中】
    用Java读取xml文件内容
    在控制台中操作MYSQL数据库步骤以及一些小问题
    java 实现对指定目录的文件进行下载
    将java项目发布到本地的linux虚拟机上
    mybatis 控制台打印出来的sql 执行结果为空 但是将sql放到mysql执行有数据
    spring mvc 拦截器
  • 原文地址:https://www.cnblogs.com/sayhallotoyou/p/4282770.html
Copyright © 2020-2023  润新知