Trong SQL Server 2008 trở lên, hãy thêm COUNT(*)
OVER ()
là một trong các tên cột trong truy vấn của bạn và sẽ được điền với tổng số hàng được trả về.
Nó được lặp lại trong mỗi hàng nhưng ít nhất giá trị có sẵn.
Lý do tại sao nhiều giải pháp khác không hoạt động là đối với các tập kết quả rất lớn, bạn sẽ không biết tổng cho đến khi lặp lại tất cả các hàng, điều này không thực tế trong nhiều trường hợp (đặc biệt là các giải pháp xử lý tuần tự). Kỹ thuật này cung cấp cho bạn tổng số sau khi gọi IDataReader.Read()
đầu tiên , chẳng hạn.
select COUNT(*) OVER () as Total_Rows, ... from ...