Stronicowanie w SQL Server 2012
Kolejną nowością dodaną do SQL Server 2012 jest wbudowane stronicowanie danych. Mechanizm ten przydaje się gdy pracujemy z dużą ilością danych i chcemy wyświetlić tylko określoną stronę danych.
Do stronicowania służą słowa kluczowe OFFSET i FETCH NEXT. Dzięki nim możemy określić zakres danych. Przykładowe użycie:
SELECT * FROM [dbo].[Apartments] ORDER BY Id OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY;
Działanie tego zapytania nie wymaga raczej tłumaczenia. A jeżeli tak, to wątpliwości powinna rozjaśnić poniższa grafika.
W SQL Server 2008 podobną funkcjonalność można było uzyskać wykorzystując funkcje ROW_NUMBER:
SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY Id) AS sequencenumber, * FROM [dbo].[Apartments]) AS TempTable WHERE sequencenumber > 2 and sequencenumber <= 4
Ale jak widać nowsze rozwiązanie jest o wiele bardziej czytelne i szybsze.