存储过程有三种返回:

1.   用return返回数字型数据

2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)

3.   直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集

方法一:用return返回数字型数据

1. 创建存储过程

--SQLSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE checkstate

@param VARCHAR(11)

AS

IF (

SELECT StateProvince

FROM   Person.vAdditionalContactInfo

WHERE  ContactID = @param

) = 'WA'

RETURN 1

ELSE

RETURN 2;

GO

2. 在存储过程中调用

DECLARE @return_status INT;

EXEC @return_status = checkstate '9';  --将存储过程返回值赋给@return_status

SELECT 'Return Status' = @return_status;

GO

3. 在VS中调用

List<DbParameter> para = new List<DbParameter>();

para.Add(new SqlParameter("@param", 9));

SqlParameter pa = new SqlParameter();

pa.ParameterName = "@return";

pa.SqlDbType = SqlDbType.Int;

pa.Direction = ParameterDirection.ReturnValue;

para.Add(pa);

int i = DBHelper.ExecuteSql("checkstate", CommandType.StoredProcedure, para);

Response.Write(para[1].Value.ToString());

方法二:用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)

1. 创建存储过程

--SQLSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE OutPutValue

@param VARCHAR(11),

@param2 VARCHAR(11) OUTPUT

AS

IF (

SELECT StateProvince

FROM   Person.vAdditionalContactInfo

WHERE  ContactID = @param

) = 'WA'

SET @param2='Good'

ELSE

SET @param2='Bad'

GO

2. 在存储过程中调用

DECLARE @param1 NVARCHAR(100)

DECLARE @param2 NVARCHAR(100)

SET @param1='9'

EXEC OutPutValue '9',@param2 OUTPUT

SELECT @param2

3. 在VS中调用

List<DbParameter> para = new List<DbParameter>();

para.Add(new SqlParameter("@param", "9"));

SqlParameter pa = new SqlParameter();

pa.Direction = ParameterDirection.Output;

pa.ParameterName = "@param2";

pa.Size = 11;

para.Add(pa);

int i = DBHelper.ExecuteSql("OutPutValue ", CommandType.StoredProcedure, para);

//OutPut返回值

Response.Write(para[1].Value.ToString());  //输出返回值

方法三:直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集

1. 创建存储过程

--SQLSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE ReturnDataTable

AS

BEGIN

SELECT * FROM Person.vAdditionalContactInfo

END

GO

2. 在存储过程中调用

EXEC ReturnDataTable

3. 在VS中调用

//存储过程返回结果集可存放在DataTable

DataTable dt = DBHelper.GetDataTable("ReturnDataTable", CommandType.StoredProcedure);

转载于:https://www.cnblogs.com/gossip/archive/2011/04/16/2018548.html

SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...相关推荐

  1. Django中Model继承的三种方式

    Django中Model继承的三种方式 Django中Model的继承有三种: 1.抽象继承 2.多表继承 3.proxy model(代理model) 1.抽象继承 第一种抽象继承,创建一个通用父类 ...

  2. android获取自定义属性,android 自定义控件中获取属性的三种方式(转)

    第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 android:layout_width="f ...

  3. java中实现多线程的三种方式

    java中实现多线程的三种方式 1.实现多线程的方法: 在java中实现多线程的两途径:继承Thread类,实现Runable接口(Callable) 2.继承Thread类实现多线程: ​ 继承类T ...

  4. UE4学习-在虚幻编辑器中打开VS的三种方式

    文章目录 方式一 方式二 方式三 在虚幻编辑器中打开VS的三种方式 方式一 在文件浏览器这里,选择C++类,然后在文件夹内,找到一个和截图中类似的图标,双击,即打开vs,并在vs中打开这个类的代码. ...

  5. Java中实现接口的三种方式您造吗?

    本文介绍了Java中实现接口的三种方式:常规实现方式.匿名内部类和 Lambda表达式实现方式.希望已经了解的同学可以重新温习一下,不了解的同学则从中受益! Java中接口最常规的实现方式 同学们都会 ...

  6. java类初始数组_java中数组初始化的三种方式是什么

    java中数组初始化的三种方式是:1.静态初始化,如[int a[] = {2, 0, 1, 9, 2020}]:2.动态初始化,如[int[] c = new int[4]]:3.默认初始化,如[i ...

  7. 【查看linux中所有用户的三种方式】

    查看linux中所有用户的三种方式学习目标: 提示:通过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息 用户信息存放位置: 提示:Linux ...

  8. java中Map遍历的三种方式

    Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...

  9. vue中data定义数字类型_[乐意黎原创] Vue中data定义的三种方式和区别

    在 Vue中,定义data时,经常有好几种写法,一不小心会混淆,这里彻底详述一下,以便记分清 . 一.在vue中,定义data可以有三种写法. 1. 第一种写法,data是一个对象. var app ...

最新文章

  1. 2019计算机考研学硕,2019计算机考研选学硕、专硕、非全日制研究生哪个好?
  2. php获取文件名称和扩展名
  3. [Curator] Path Cache 的使用与分析
  4. 【Java语法】比较两个字符串是否相等
  5. 选择题微型计算机系统包括,全国计算机一级选择题专项训练及答案2016
  6. css --- [读书笔记] 盒模型(边框、内外边距)
  7. 其中一个页签慢_渭南提升一个大专学历的有效方法
  8. IOS之学习笔记五(合成存取方法)
  9. Typecho网站隐藏内容公众号验证码查看涨粉丝插件(美化版)
  10. Page_PreInit在网页传值的应用
  11. 2018 年度人工智能热门事件大盘点:「悲喜交加」
  12. : 字符向量未正常终止_文本挖掘从小白到精通(一)---语料、向量空间和模型的概念...
  13. MQTT教程(二):MQTT中的可变报头
  14. 蓝桥杯嵌入式蜂鸣器程序
  15. 探索游戏开发中的关卡设计+游戏开发中的关卡草图设计【笔记】
  16. 大奖赛现场统分(哈工大Mooc)
  17. 最新版华美淘客商城淘宝客程序源码
  18. 卷积法求解系统的零状态响应_因果系统的零状态响应的一种简易计算方法
  19. golang 根据生日计算星座和属相
  20. 通过python和两张图片实现漫天蝴蝶飞舞的合成图像

热门文章

  1. 【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书
  2. Photoshop 隐藏的快捷键
  3. CentOS配置网关服务器
  4. Android5.0之CardView的使用
  5. python 使用 redis expire属性设置访问时间间隔
  6. 驳斥《沙盒用于数据防泄密是重大技术原理性失误》
  7. c# BackgroundWorker组件介绍(属性、方法、事件)
  8. 专家解释即将到来的BCH网络升级
  9. Vue中动态设置页面title
  10. XXL-RPC v1.3.2,分布式服务框架