SQL Server 2005 - MySQL Limit nachbilden

tomkruse

Erfahrenes Mitglied
Hallo!

Ich programmiere gerade eine ASP.NET Intranetseite und da kommen einige GridViews vor. Um das Ganze zu beschleunigen, wollte ich mit custom pagination das Blättern selbst implementieren um zu verhindern, dass immer die gesamte Tabelle gelesen wird obwohl nur 20 Zeilen davon angezeigt werden sollen. Mit Schrecken habe ich festgestellt, dass es bei SQL Server 2005 anscheinen keine LIMIT Anweisung gibt, wie man sie von MySQL her kennt. Ist dort genau für den Zweck des Umblätterns extrem praktisch. Hätte nicht gedacht, dass MySql etwas kann, das der SQL SErver so nicht beherrscht :)

In einem Buch habe ich eine etwas umständliche Stored Procedure gefunden, die das Problem mittels Umkopieren in eine temporäre Tabelle löst. Erscheint mir nicht wirklich effizient. Gibts da keinen besseren Ansatz um nur einen Ausschnitt der Datensätze zu bekommen?

viele Grüsse

Thomas.
 
Hi

Das ganze ist im Sql Server ein wenig umständlicher, aber nicht schwieriger: http://www.15seconds.com/issue/070628.htm

Bessere Alternative wären WCF DataServices (bis .NET 3.5 SP1 ADO.NET DataServices). Mit diesen baust du dein Persistance Layer. Die Services stellen dir dann entsprechend das Paging zur Verfügung.
 
Hallo!

Danke für den Link. Auf die Idee mit row_number() bin ich nach einigem Suchen in meinem SQL-Server Buch dann auch gekommen. Das klappt wirklich gut.

Mit dem Persistance Layer habe ich mich noch nicht so ausführlich beschäftigt. Werde ich dann aber auch mal machen.

viele Grüsse

Thomas.
 
Zurück