Create PROCEDURE [dbo].[esp_ListProjectStatistics]
@PeopleID as varchar(50)
AS
BEGIN
Declare @iParticipate int
Declare @iFavorite int--我参与的工程项目
exec esp_ListParticipateProject @PeopleID
Set @iParticipate = @@Rowcount--我关心的工程项目
exec esp_ListFavoriteProject @PeopleID
Set @iFavorite = @@Rowcount
Select @iParticipate as ParticipateNum,@iFavorite as FavoriteNumEND
==========================================
问题是我只想返回最后一个select语句的结果集,但执行存储过程后是返回三个结果集包括exec的两句执行的结果集,
怎样才能指定该存储过程只返回统计数据供程序调用

解决方案 »

  1.   

    用WITH语句、临时表、
    或子查询。
      

  2.   

    Create PROCEDURE [dbo].[esp_ListProjectStatistics] 
    @PeopleID as varchar(50) 
    AS 
    BEGIN 
    Declare @iParticipate int 
    Declare @iFavorite int --我参与的工程项目 
    create table #1(......)
    insert into #1 exec esp_ListParticipateProject @PeopleID 
    Set @iParticipate = @@Rowcount --我关心的工程项目 
    create table #2(......)
    insert into #2 exec esp_ListFavoriteProject @PeopleID 
    Set @iFavorite = @@Rowcount Select @iParticipate as ParticipateNum,@iFavorite as FavoriteNum END 
      

  3.   

    @戻り値 VARCHAR(20) OUTPUT --戻り値select @戻り値 = @iParticipate + '_' + @iFavorite 
      

  4.   

    谢谢:子陌红尘
    但存储过程中create table又不用,而且存储过程返回的字段很多,要定义那么多字段的表还是挺复杂,
    还是觉得有点问题天煞孤星的方法是可以,但外部程序不能当做结果集处理,还要拆分字符串,有点麻烦继续寻找思路,谢谢各位帮助