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

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

相关文章推荐

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

output 类型的参数需要在存储过程的参数列表中添加。output类型的参数传入存储过程后还会返回其运行后的值。 return value类型的参数不需要在存储过程的参数列表中添加。return ...

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

CREATE TABLE [dbo].[Order]( [o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [o_buyerid...

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

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

用SQL语句获得一个存储过程返回的表

定义一个存储过程如下: create proc [dbo].[test1] @id int as select 1 as id,'abc' as name union all  select...
  • studyzy
  • studyzy
  • 2013年09月10日 14:19
  • 5061

C#获得sql存储过程return返回的值和返回参数返回的值

下面的CmdObj.是定义的SqlCommand对象1、获得存储过程中return语句返回的整个存储过程函数的返回值://获得存储过程return的值,定义一个参数,指明其作用是接受return的值 ...
  • nutian
  • nutian
  • 2007年10月30日 18:21
  • 4498

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

              string connStr = "server=kofo;database=pubs;uid=sa;pwd=kofo123";              SqlConne...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

EntityFramework存储过程的返回类型

使用EntityFramework可以很方便的与数据库打交道,但是对于存储过程,返回类型很让人纠结,默认只返回受影响的行数,而我们在使用存储过程时往往是会返回一串的数据或者一个表。那有没有什么方法呢?...

EF中执行存储过程,获取output返回值

EF不能直接支持执行存储过程,于是使用转化成执行SQL语句的形式,却怎么也获取不到output的值,折腾的好久,终于解决了,分享下曲折的经历: public int AddVote(int titl...

返回结果集的存储过程实例及调用

1、创建一个包,定义一个游标类型,为存储过程的输出参数使用create or replace package sp_emp_pk as type sp_emp_cursor is ref cursor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:存储过程 返回值 procedure return values
举报原因:
原因补充:

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