В SQL Server 2008 и по-нови версии добавете COUNT(*)
OVER ()
като едно от имената на колоните във вашата заявка и това ще бъде попълнено с общия върнат ред.
Повтаря се във всеки отделен ред, но поне стойността е налична.
Причината, поради която много други решения не работят, е, че за много големи набори от резултати няма да знаете общата сума, докато не повторите всички редове, което не е практично в много случаи (особено решения за последователна обработка). Тази техника ви дава общия брой след извикване на първия IDataReader.Read()
, например.
select COUNT(*) OVER () as Total_Rows, ... from ...