存储过程如下: declare @iTotalRPGroup int; select  COUNT(*) from RPGROUPS_RPACCESS 
      WHERE ROUTEPOINTGROUPID = @RPGroup_ID
      GROUP BY routepointgroupid, routepointid;
 set @iTotalRPGroup = @@RowcountSELECT 'TRUE' AS ISGROUP, NULL AS DESTINATION, DESTINATIONTYPE, NAME_SCENARIO, DESCRIPTION 
    FROM VIEW_MODEDETAILGROUP 
    WHERE routepointgroupid =  @RPGroup_ID
     GROUP BY  DESTINATIONTYPE, NAME_SCENARIO, DESCRIPTION
    HAVING COUNT(*) > = cast(@iTotalRPGroup as varchar(255))
这个存储过程的输出结果如下
Results     --这个是第一个SELECT的结果
1
1
1
...ISGROUP DESTINATION DESTINATIONTYPE NAME_SCENARIO DESCRIPTION    --这个是第二个SELECT的结果
TRUE NULL AfterHrsMsg NULL After Hours
TRUE NULL EmergencyMsg NULL Evacuation
...我只想输出第二个SELECT的结果,应该如何修改这个存储过程?
换句话说:我在使用C#获取存储过程结果集,DataSet里看到Tables[0](第一个SELECT输出结果)和Tables[1](第二个SELECT输出结果).我只想在DataSet中只看到Tables[0], 即第二个SELECT的输出结果我希望修改这个存储过程,不是改C#程序,请大家帮我改改,先谢谢了

解决方案 »

  1.   

    就是你查看运行结果的窗口显示的内容:
    我用的是E版SQL 2008
    有两个Tab:Result和Messages
    Result内容显示如下:
    1        


    ... ISGROUP DESTINATION DESTINATIONTYPE NAME_SCENARIO DESCRIPTION  
    TRUE NULL AfterHrsMsg NULL After Hours 
    TRUE NULL EmergencyMsg NULL Evacuation 
    ... Return Value
    0
      

  2.   

    那个结果是中间过程
    select  COUNT(*) from RPGROUPS_RPACCESS 
          WHERE ROUTEPOINTGROUPID = @RPGroup_ID
          GROUP BY routepointgroupid, routepointid;
    的输出
      

  3.   


    -- 不知道你的业务需求,只能试着写一个
    -- 这个是  @iTotalRPGroup 获得上条语句影响的行数,按你的原句写的。
     declare @iTotalRPGroup int, @c int;
     select @c=COUNT(*) from RPGROUPS_RPACCESS 
          WHERE ROUTEPOINTGROUPID = @RPGroup_ID
          GROUP BY routepointgroupid, routepointid;
    set @iTotalRPGroup = @@Rowcount
      

  4.   


    -- 或者, @iTotalRPGroup 获得符合查询条件的行数
    declare @iTotalRPGroup int;
     select @iTotalRPGroup=COUNT(*) from RPGROUPS_RPACCESS 
          WHERE ROUTEPOINTGROUPID = @RPGroup_ID
          GROUP BY routepointgroupid, routepointid;
      

  5.   

    你要返回一个result还是一个result list ?
      

  6.   

    先谢谢楼上几位的回复,看来我没有表述清楚
    我需要返回一个result list,关键是如何改写-> 取@@rowcount的这个中间过程这个方法我试过了, 
    declare @iTotalRPGroupint;
    select @iTotalRPGroup=COUNT(*) from RPGROUPS_RPACCESSWHERE ROUTEPOINTGROUPID=@RPGroup_IDGROUPBY routepointgroupid, routepointid;和declare @iTotalRPGroupint;
    select COUNT(*)from RPGROUPS_RPACCESSWHERE ROUTEPOINTGROUPID=@RPGroup_IDGROUPBY routepointgroupid, routepointid;
    set @iTotalRPGroup= = @@rowcount的结果是不一样的.我尝试print出@iTotalRPGroup这个变量
    第二种情况:@@rowcount的结果得到是上面这个Group by SQL的记录数,
    而第一种情况得到的结果是1,请看我1楼的数据返回结果
      

  7.   

    抱歉我的表述能力不好.这个问题很难说清楚,不知道有没有人在C#取数据时候碰到过类似的问题,
    本来我是在C#论坛提问的.但是经过分析以后发现我应该改写存储过程,所以才到这里又发了个帖子,
    也请看看这个帖子,不知道大家能明白不?
    http://topic.csdn.net/u/20091127/06/5c152e5a-c6d0-49ea-8ae0-fe2ab0bfff04.html