Di SQL Server 2008 dan yang lebih baru, tambahkan COUNT(*)
OVER ()
sebagai salah satu nama kolom dalam kueri Anda dan yang akan diisi dengan total baris yang dikembalikan.
Ini diulang di setiap baris tetapi setidaknya nilainya tersedia.
Alasan mengapa banyak solusi lain tidak berfungsi adalah karena, untuk kumpulan hasil yang sangat besar, Anda tidak akan mengetahui totalnya sampai setelah mengulangi semua baris yang tidak praktis dalam banyak kasus (terutama solusi pemrosesan sekuensial). Teknik ini memberi Anda jumlah total setelah memanggil IDataReader.Read()
first pertama , misalnya.
select COUNT(*) OVER () as Total_Rows, ... from ...