Eine bessere Art und Weise für Immer Total Count zusammen mit Paging in SQL Server 2012
Ich habe die Anforderung bekommen, dass die Gesamtzahl der Datensätze, die zusammen mit paging. Derzeit mache ich es wie unten aufgeführt, die in SQL Server 2012. Hierzu muss eine separate Abfrage für das erste zählen. Gibt es eine bessere Art und Weise, in SQL Server 2012?
ALTER PROCEDURE dbo.tpGetPageRecords
(
@OffSetRowNo INT,
@FetchRowNo INT,
@TotalCount INT OUT
)
AS
SELECT CSTNO, CSTABBR
FROM DBATABC
WHERE CSTABBR LIKE 'A%'
ORDER BY CSTNO
OFFSET ( @OffSetRowNo-1 ) * @FetchRowNo ROWS
FETCH NEXT @FetchRowNo ROWS ONLY
SET @TotalCount =
(SELECT COUNT(*)
FROM DBATABC
WHERE CSTABBR LIKE 'A%')
GO
InformationsquelleAutor der Frage Lijo | 2013-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn wir sind berechtigt, den Vertrag ändern, können Sie haben:
Und nun die insgesamt zur Verfügung stehen wird als separate Spalte in der Ergebnismenge. Leider gibt es keine Möglichkeit zum zuweisen dieses Wertes auf eine variable in der gleichen Anweisung, so können wir nicht mehr bieten als eine
OUT
parameter.Diese nutzt die
ÜBER
- Klausel (verfügbar seit 2005) zu ermöglichen, ein Aggregat berechnet werden, über den gesamten (unbegrenzten) ResultSet und ohneGROUP
ing.InformationsquelleAutor der Antwort Damien_The_Unbeliever