SQL Server 2008以降では、COUNT(*)
を追加します OVER ()
クエリの列名の1つとして、返された合計行が入力されます。
すべての行で繰り返されますが、少なくとも値は使用可能です。
他の多くのソリューションが機能しない理由は、非常に大きな結果セットの場合、多くの場合実用的ではないすべての行を反復するまで合計がわからないためです(特に順次処理ソリューション)。この手法では、最初のIDataReader.Read()
を呼び出した後の合計数がわかります。 、たとえば。
select COUNT(*) OVER () as Total_Rows, ... from ...