dondy Geschrieben 13. Oktober 2009 Geschrieben 13. Oktober 2009 Hallo, wie kann ich auf einem SQL Server 2008 das Ergebnis einer SELECT-Abfrage seitenweise ausgeben? Beispiel: Als Ergebnis erhalte ich 90.000 Datensätze. Datensatz 1 – 5.000 Seite 1 Datensatz 5.001 – 10.000 Seite 2 Usw. Gibt es deine Einstellung im Server oder einen Befehl den ich absetzen muss?
dondy Geschrieben 13. Oktober 2009 Autor Geschrieben 13. Oktober 2009 Ja aber wie gebe ich das korrekt ein LIMIT habe ich schon gefunden, allerdings nirgendwo beschrieben wie es richtig in die Abfrage einbaue.
RipperFox Geschrieben 13. Oktober 2009 Geschrieben 13. Oktober 2009 Limit beschränkt die Anzahl der zurückgegebenen Datensätze - aber: Was hat die Anzahl der Zeilen eines Abfrageergebnisses mit der überhaupt mit irgendeinem Druckvorgang zu tun? Normalerweise benutzt man irgendeine Reporting-Schnittstelle (Crystal Reports, Excel, SQL Reporting, etc.) für den Druck. Allein schon, weil man so Dinge wie Schriftart und -größe einzustellen möchte. Ich glaube also: Die Lösung lautet nicht "Limit", sondern dein Problem ist schon falsch formuliert. Wie willst du den denn was drucken? Grüße Ripper
dondy Geschrieben 13. Oktober 2009 Autor Geschrieben 13. Oktober 2009 Na ja drucken will ich es nicht. Ich will es halt nur seitenweise auf dem Bildschirm bzw. in dem Ergebnissraster ausgeben. Hintergrund ist der, dass ich mich durch die Datensätze hangeln muss und mir das seitenweise zur Brust nehmen will. Gibt es da keine Möglichkeit das irgendwie seitenweise auf den Bildschirm zu bekommen?
Reinhold Geschrieben 13. Oktober 2009 Geschrieben 13. Oktober 2009 Moin, limit kennt der SQL Server AFAIK nicht. Workarounds wurden früher einmal hier diskutiert: Geniale Leute diskutieren bei fachinformatiker.de hth Reinhold
RipperFox Geschrieben 13. Oktober 2009 Geschrieben 13. Oktober 2009 Naja.. "alte" Workarounds: Seit SQL Server 2005 gibt auch in T-SQL Rownums: DECLARE @RowsProSeite INT DECLARE @Start INT SET @Start = 120000 SET @RowsProSeite = 10 SELECT * FROM ( [INDENT]SELECT row_number() OVER (ORDER BY column) AS Spalte1, Spalte2, ..SpalteX FROM table) AS A[/INDENT] WHERE A.rownum BETWEEN (@Start) AND (@Start + @RowsProSeite) Sowas? Grüße Ripper
Reinhold Geschrieben 13. Oktober 2009 Geschrieben 13. Oktober 2009 Moin, jou, genau dieser Weg wird dort beschrieben. Was wolltest du uns eigentlich sagen? Reinhold
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden