Если у меня есть оператор SQL, например:
SELECT TOP 5
*
FROM Person
WHERE Name LIKE 'Sm%'
ORDER BY ID DESC
PRINT @@ROWCOUNT
-- shows '5'
Можно ли в любом случае получить значение типа @@ROWCOUNT
, которое является фактическим числом всех строк, соответствующих запросу, без повторной выдачи запроса без TOP 5
?
Фактическая проблема - гораздо более сложный и интенсивный запрос, который прекрасно работает, поскольку мы можем использовать TOP n
или SET ROWCOUNT n
, но тогда мы не сможем получить общее количество, необходимое для правильного отображения информации о подкачке в пользовательском интерфейсе. В настоящее время мы должны повторно выполнить запрос с @Count = COUNT(ID)
вместо *
.