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的参数,也会改成整数

  • 相关阅读:
    IE11和传统asp.net的兼容问题
    时区和夏令时
    GTA项目 三, 使用 bootstrap table展示界面,使得data和UI分离
    GTA项目 二, JSON接口开放跨域访问
    GTA项目 一, 包装外部WebService
    DNS域名解析
    CRM 迁移服务器备忘
    CentOS6.5 安装HAProxy 1.5.20
    Custom IFormatProvider
    数据分区考虑
  • 原文地址:https://www.cnblogs.com/SunnyZhu/p/5542347.html
Copyright © 2011-2022 走看看