2009-06-05 8 views
0

HALLO, zählenSQL Server 2005, erhalten Pagin Abfrage alle Ergebnis

Ich habe einige Tabellen mit vielen Datensätzen, für einen Bericht, den ich diese Tabellen zu verbinden haben.

Wenn ich alle Zeilen abrufen möchte, bekomme ich den Timeout-Fehler, ich habe Paging-Abfrage in SQL Server 2005 verwendet und kann das Ergebnis Seite für Seite erhalten.

aber ich muss die Anzahl der Ergebnisse oder die Anzahl der Seiten meiner Abfrage wissen. auf einer seitenweisen Abfrage, wenn ich zähle () Ich habe die Seitengröße, nicht die gesamte Anzahl der Ergebnisse, und wenn ich versuche, Count () auf alle Datensätze auch bekomme ich Timeout Fehlermeldung.

Gibt es eine Methode, mit der Sie die Seitenanzahl einer Abfrage finden können?

Dank

Antwort

0

Normalerweise Seite-aware gespeicherte Prozeduren auswählen (erstellt von zum Beispiel .netTiers Codesmith-Vorlage) liefert ein mehrere Ergebnis. Die erste Ergebnismenge ist eine Seite mit Daten und die zweite Menge ist die Anzahl der Datensätze.

Dies bedeutet, dass Sie zwei SELECT-Anweisungen in Ihrem SP haben müssen, die beide die gleiche WHERE-Klausel haben, die denselben Filter auf die Zeilen der Abfrage anwendet.

+0

Ich benutze nicht Code Smith, wenn ich einen anderen select mit dem gleichen Filter benutze (ohne Paging und nur Count (*), dieses eine Zeitüberschreitung – Ashian

+0

Ich weiß, dass Sie nicht CodeSmith verwenden. Sonst hätten Sie nicht Dieses Problem an erster Stelle. Was ist die ungefähre Ergebnismenge Größe (nicht ausgelagert)? –

+0

überprüfen Sie, wie es in .netTiers gemacht wird: http://blog.benpowell.co.uk/2009/02/paging-and-sorting- in-nettiers-custom.html –