SQL Server中获得EXEC的值<转>

declare @rsql varchar(250)

declare @csql varchar(300)

declare @rc nvarchar(500)

declare @cstucount int

declare @ccount int

set @rsql='(select Classroom_id from EA_RoomTime where zc='+@zc+' and xq='+@xq+' and T'+@time+'='''') and ClassroomType=''1'''

--exec(@rsql)

set @csql='select @a=sum(teststucount),@b=sum(classcount) from EA_ClassRoom where classroom_id in '

set @rc=@csql+@rsql

exec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--将exec的结果放入变量中的做法

--select @csql+@rsql

--select @cstucount
前言:在数据库程序开发的过程中,我们经常会碰到利用EXEC来执行一段需要返回某些值的sql语句(通常是构造动态sql语句时使用),或者在一个存储过程中利用EXEC调用另一个有返回值的存储过程(必须获得返回值),那么如何获得这些返回值呢?

1,EXEC执行sql语句的情况

 

上面的@rc这个sql语句的功能是找出特定时间段里所有有空的教室数量以及这些教室所能容纳的学生人数,因为涉及到动态的sql语句(@csql这句里条件中有一个列名是动态变化的)的构造,所以要放在exec里执行,但是同时我又要返回2个结果,所以执行时的代码为:

原文地址:http://www.cnblogs.com/xiaofengfeng/archive/2011/03/25/1995971.html

posted @ 2011-03-26 23:47  温景良(Jason)  Views(436)  Comments(0Edit  收藏  举报