Jako ktoś, kto tworzy strony internetowe i robi trochę SQL Servera, nie mam wątpliwości, że SQL Server powinien obsługiwać prostą klauzulę, która wskazuje, że wyniki powinny zawierać tylko określony zakres wierszy. Na przykład wiersze od 30 do 39.
Na obecnym etapie implementacja stronicowania w SQL Server jest w rzeczywistości nieco większa niż możliwości wielu programistów internetowych, gdy ich głównym celem nie jest SQL.
Ponadto znacznie uprościłoby zapytania, które mogą być już złożone ze względu na sprzężenia i inne warunki.
Co więcej, jestem zdania, że taka klauzula może mieć większą szansę na optymalizację wewnętrzną w czasie, ponieważ logika byłaby całkowicie pod kontrolą Microsoftu.
Przywołałem to jakiś czas temu na innym forum i wiele odpowiedzi wydawało się sugerować, że nie byłoby to pożądane.
Biorąc pod uwagę, że wszelkie istniejące techniki stronicowania pozostałyby nienaruszone, jaki mógłby być powód, aby nie dodawać takiej klauzuli? I byłoby o wiele lepiej dla ludzi takich jak ja.
Czy ktoś może mieć dobry powód, dla którego Microsoft tego nie zrobił?
źródło
W tej chwili SET ROWCOUNT , TOP () i ROW_NUMBER () mogą Ci pomóc :)
Oto próbka z SO
źródło