执行一个存储过程,能否实现同时返回几个值和一个行集?或者同时返回几个值和几个行集.
来源:互联网 发布:深圳年度进出口数据 编辑:程序博客网 时间:2024/05/16 01:13
例如我要同时返回table1中的字段的2个值,同时返回table2的10行(每行是有多个字段的).
如何将这些结果在程序中分别获取出来?
msdn上的例子都看了,那个太简单,只是输出单一的值或者只是行.
所有问题全部解决了,用union all可以用多种思路全部搞定,
存储过程定义时,注意几点,
CREATE PROCEDURE test
@id1 smallint output,
@id2 int ,
@id3 int
AS
set nocount on
BEGIN TRANSACTION
SELECT @id1 = id
FROM BookIndex
WHERE (bID = 135 )
COMMIT TRANSACTION
SELECT id, 1 //这里注意,第一个行集是1列,但union all的表必须是列数相同,因此用1凑够列数
FROM BookIndex
WHERE (bid = @id2 ) or (bid = @id3 ) union all
SELECT ChapterTotal, name//第2个行集是2列
FROM BookIndex
WHERE (bid = 145 ) union all
SELECT @id1 , 2//这里注意,不能直接将赋值给输出参数的语句作为union all的对象,必须先获得@id的值再union all
GO
这样所有结果全部放在一个行集的表里返回了.
具体在程序里获得返回的行集,怎么判断第1个行集结束,和第2个行集开始的呢?如果知道确切的每个
行集返回的行数是很简单的,但如果不知道每个行集返回的行数呢?我采用将第一个和第二个行集的列的类型
设置不同来搞定,获取结果时,当程序捕捉到转变类型异常,就知道是第2个行集开始了.
返回多个"列完全不同的行集",在asp.net中可以使用
sqlReader = CmdObj.ExecuteReader();
while(sqlReader.Read())
{
.......//获得弟一个结果集的内容
}
sqlReader.NextResult();
while(sqlReader.Read())
{
.......//获得弟二个结果集的内容
}
sqlReader.close();
CmdObj.Parameters["@wordCount"].Value;//获得参数返回的值
//最后关闭整个连接
- 执行一个存储过程,能否实现同时返回几个值和一个行集?或者同时返回几个值和几个行集.
- all与any操作符和返回两个结果集和把一个结果集当表和查询结果创建表和同时更新几个字段
- 怎样执行存储过程,返回一个记录集和一个返回值?
- 一个字段同时查询几个不同值的SQL
- oracle学习-存储过程返回一个值,和返回一个结果集
- jquery几个按钮同时调用一个方法
- Java调用SQL Server存储过程同时返回参数和结果集
- java调用存储过程同时获取[返回参数]和[结果集]
- Java new一个对象执行几个过程
- 使用array和list实现在php中一个函数同时返回多个值
- C#实现数据回滚,A事件和B事件同时执行,其中任何一个事件执行失败,都会返回失败
- Oracle 中返回最大值和返回前几个较大值(TOP10)问题一解
- python同时兼容2和3的几个技巧
- 怎么知道自己的代码或者循环执行时候,同时有几个功能单元在并行
- 判断一个整数能否同时被3和5整除
- 函数中有多个return?C语言中,一个函数可以有几个返回值?
- c#存储过程,返回记录集和执行sql语句
- 几个SQL Server语句和存储过程
- java数据结构之链表
- BLOG开张~
- 用 JSEclipse 构建 JavaScript 应用程序
- 如何在网页中调试JavaScript
- 次贷危机也是新机遇
- 执行一个存储过程,能否实现同时返回几个值和一个行集?或者同时返回几个值和几个行集.
- 制作FLV文件的一些工具(备忘)
- CTime
- 关于WSDL中soapenc:Array的使用问题
- windows中的高级隐藏
- [分享]计算机与操作系统启动原理
- At命令攻略
- 请教各位了;如何安装两个硬盘.
- BBDict插件的修正