存储过程 返回值 procedure return values

原创 2016年05月30日 16:47:44

存储过程有三种返回: 
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的参数,也会改成整数

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用存储过程并返回值与及返回值的获得方法

CREATE TABLE [dbo].[Order]( [o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [o_buyerid...
  • chen_yanfeng
  • chen_yanfeng
  • 2017年02月09日 11:51
  • 1436

存储过程输出参数、返回值、返回表及C#调用

存储过程中可以定义输出变量,返回值,执行存储过程还能获得结果集。每个存储过程的默认返回值为0。下面紧接着上文 SQL Server中存储过程Stored Procedure创建及C#调用 基础上写的一...
  • tanzhangwen
  • tanzhangwen
  • 2015年02月26日 11:27
  • 3509

Sql Server 存储过程调用存储过程接收输出参数,返回值

创建存储过程: [c-sharp] view plain copy ALTER PROCEDURE [dbo].[GetCustomers]   (@rowcount INT O...
  • lifewinnerforever
  • lifewinnerforever
  • 2017年06月02日 09:32
  • 4582

关于 存储过程返回值(转)

有一个表,其主键是int并且为自动增长的。当我向这个表中插入一项并且不提供主键的时候,数据库会自动添加一个唯一的主键。问题是:怎么得到刚刚插入的那一项的主键值?1、存储过程有两种方式返回值:第一:通过...
  • hduzh
  • hduzh
  • 2009年09月07日 16:51
  • 7993

怎样接收存储过程的返回值

 获取存储过程的处理结果,通常都是采用output类型的参数来实现。但有些时候使用这种方式未必很方便。其实,可以使用函数一样的方式来接收其返回值。例如:create procedure dbo.tes...
  • ivan_ren
  • ivan_ren
  • 2008年07月31日 10:18
  • 2650

定一个变量来存储存储过程的返回值

(1)不带任何参数的存储过程(存储过程语句中含有return)  ---创建存储过程  CREATE PROCEDURE  testReturn  AS  return 145  G...
  • JJYMMJ
  • JJYMMJ
  • 2013年07月03日 10:56
  • 1116

Sql Server中存储过程中输入和输出参数(简单实例,一看就懂)

-- ===================【创建存储过程】===================== USE [Message] GO /****** Object: StoredProcedu...
  • dxnn520
  • dxnn520
  • 2012年10月24日 06:47
  • 37992

存储过程中的out,output,return 的使用

output 类型的参数需要在存储过程的参数列表中添加。output类型的参数传入存储过程后还会返回其运行后的值。 return value类型的参数不需要在存储过程的参数列表中添加。return ...
  • ycl295644
  • ycl295644
  • 2015年05月29日 11:22
  • 7125

c#中获取存储过程的返回值(return Value)

              string connStr = "server=kofo;database=pubs;uid=sa;pwd=kofo123";              SqlConne...
  • mane_yao
  • mane_yao
  • 2010年04月22日 08:35
  • 1880

ASP.NET调用存储过程(带参数,三个返回值)+@ReturnValue

http://blog.sina.com.cn/s/blog_707a4cbf0100ualx.html sp.net中调用存储过程方法简单,功能强大。很好的使用存储过程,不但可以极...
  • passionboyxie
  • passionboyxie
  • 2014年11月11日 20:04
  • 1383
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:存储过程 返回值 procedure return values
举报原因:
原因补充:

(最多只允许输入30个字)