zoukankan      html  css  js  c++  java
  • 存储过程 返回值 procedure return values

    存储过程有三种返回:
    1. 用return返回int型数据
    2. 用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)
    3. 直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集

    例子:1

    use tempdb;
    
    create procedure test1
    as
    begin
    if 1=1
    return 1
    else 
    return 2
    end
    
    declare @index int
    exec @index= test1
    select @index
    
    drop procedure test1

    如下图,得到返回值 1

    例子:2

    use tempdb;
    
    create procedure test1
    (@paramater varchar(20) output)
    as
    begin
    if 1=1
    set @paramater='01'
    else 
    set @paramater='02'
    end
    
    declare @index varchar(10)
    exec test1 @index output
    select @index as [index]
    
    drop procedure test1

    例子:3

     1 use tempdb;
     2 
     3 create procedure test1
     4 
     5 as
     6 begin
     7     declare @paramater varchar(21)
     8     set @paramater='01'
     9     select @paramater
    10 end
    11 
    12 exec test1
    13 
    14 /*declare @index varchar(10)
    15 exec @index=test1
    16 select  @index as [index]*/
    17 
    18 drop procedure test1

    以上是3种调用的返回方式。

    如果我在数据库,使用"执行存储过程"的方式执行存储过程,我们会活动另外一种结果。

    为什么一个存储过会有两个结果呢。

    我猜测用系统的存储过程可能会有2个值,1、结果集;2、return value.

    带着猜测,修改了存储过程,然后得到了下图的答案。

    带着解决问题的后愉悦的心情,再说一个小问题。

    return只能返回整数,就算varchar的参数,也会改成整数

  • 相关阅读:
    odoo10 按钮点击时的弹窗提示确认消息
    odoo10 行表创建新数据时默认取值
    odoo10 关于ODOOsearch视图
    odoo10 many2one字段下拉更多选项时自定义排序方法
    变量的注释(python3.6以后的功能)
    蓝图的使用
    线程
    基础总结1
    请求上下文和应用上下文
    flask-script扩展
  • 原文地址:https://www.cnblogs.com/SunnyZhu/p/5542347.html
Copyright © 2011-2022 走看看