日期:2014-05-18  浏览次数:20582 次

●●●如何通过参数将所检索的记录总数返回?●●●
如题。

例如我我创建如下一个存储过程。(SQL   SERVER2000)
Create   Procedure   upGetRecords
                    @sName   NVARCHAR(20),
                    @nCount   int   output
As
              SELECT   *   FROM   My_Table   WHERE   Name=@sName   --这是所得到的记录集

              --但是如何才能将所得到的记录集的总数返回给参数@nCount呢?(请赐教)
              --能用如下的代码吗?
              SELECT   COUNT(*)   AS   REC_COUNT   FROM   My_Table   WHERE   Name=@sName
              SELECT   @nCount=   --   在此处如何赋值?

              --如果按照我的这样写法,得到的结果集岂不是有两个?我在Vc中如何识别?

--我最想实现的是能返回一个记录集,然后将符合我检索条件的记录的记录总数返回给@nCount值,希望大家帮忙。

return   @@Error


------解决方案--------------------

SELECT @nCount=COUNT(*) AS REC_COUNT FROM My_Table WHERE Name=@sName
--或者
SET @nCount=@@ROWCOUNT
------解决方案--------------------
declare @Count
SELECT COUNT(*) AS REC_COUNT FROM My_Table WHERE Name=@sName
SET @Count=@@ROWCOUNT

(@@ROWCOUNT 返回受上一语句影响的行数。)