Sql 如何查找游标的记录计数

Sql 如何查找游标的记录计数,sql,sql-server-2008,Sql,Sql Server 2008,这是我的光标 declare @product1 CURSOR SET @product1 = CURSOR for SELECT Id from Tbl_StkDetailedBookStock where IsActive='True' and BookStockId=@tempd4 ; 这里我有两条记录在游标中 SELECT Id from Tbl_StkDetailedBookStock where IsActive = 'True' and Book

这是我的光标

 declare @product1 CURSOR 

 SET @product1 = CURSOR for SELECT Id from Tbl_StkDetailedBookStock where IsActive='True'         
 and  BookStockId=@tempd4 ;
这里我有两条记录在游标中

SELECT Id 
from Tbl_StkDetailedBookStock 
where IsActive = 'True' and BookStockId = 11
那么如何找到游标计数=2,因为我想找到游标计数并基于该计数执行一些操作

谁来帮忙找这个


谢谢。

选择@@CURSOR\u行,因为TotalRows将显示光标中的总行数。但为此,您需要一个静态光标。对于非静态游标,您需要通过迭代游标对自身进行计数。

您可以添加一个计算列,以返回行计数以及其他数据。每行中的值相同:

SET @product1 = CURSOR FOR
  SELECT Id, COUNT(*) OVER () AS cnt
  FROM Tbl_StkDetailedBookStock
  WHERE IsActive='True'
    AND BookStockId=@tempd4
;

您无法找到该信息,除非您枚举整个游标,例如,您只提取下一行,直到没有更多的行可提取为止。