Ograniczanie wyników ustawia się za pomocą GÓRNEGO i procent
Można użyć góry klauzula, aby ograniczyć liczbę wierszy zwracanych zestaw wyników.
TOP ( expression ) [ PERCENT ] [ WITH TIES ]
expressionto wyrażenie liczbowe, które określa liczbę wierszy zwracanych; Jeśli procent jest określony lub procent (określony przez expression) z zestaw wyników zwracanych wierszy.Na przykład:
TOP (120) /*Return the top 120 rows of the result set. */
TOP (15) PERCENT /* Return the top 15 percent of the result set. */.
TOP(@n) /* Return the top @n rows of the result set, with the variable declaration: DECLARE @n AS BIGINT; SET @n = 2 */.
Jeśli instrukcja SELECT zawierająca góry ma również ORDER BY klauzula, wierszy, które mają być zwracane są wybierane z zestaw wyników zamówione.Zestaw wyników całego jest wbudowana w określonej kolejności i góry n zwracanych wierszy w zestawie wyników zamówione.Jeżeli określony jest również WITH TIES, zwracane są wszystkie wiersze zawierające ostatnią wartość zwracana przez klauzula ORDER BY, nawet jeśli w ten sposób przekracza wartość określoną przez expression.
GÓRNY vs.ZESTAW ROWCOUNT.
Inne metoda ograniczanie rozmiaru zestaw wyników jest wykonać ROWCOUNT USTAWIĆ n instrukcja przed wykonaniem instrukcja.Ustaw ROWCOUNT różni się od góry w następujący sposób:
Zastosowanie klauzula TOP, aby ZAZNACZYĆ pojedynczy instrukcja określonego w.Ustaw ROWCOUNT pozostaje, dopóki wykonywane innej instrukcja USTAWIĆ ROWCOUNT, takich jak USTAWIĆ ROWCOUNT 0, aby wyłączyć opcję.
Ważne: Za pomocą zestawu ROWCOUNT nie wpłynie na instrukcji DELETE, INSERT i UPDATE w następnym wydaniu SQL Server.Należy unikać ROWCOUNT zestaw instrukcji DELETE, INSERT i UPDATE w nowych prac rozwojowych i plan aplikacji korzystających aktualnie go zmodyfikować.Zaleca się, że instrukcji DELETE, INSERT i UPDATE, korzystających aktualnie USTAWIONA ROWCOUNT ponownie zapisać do korzystania z góry.
Mimo że skuteczna ROWCOUNT zestaw instrukcji SELECT pozostaje bez zmian, wybierz przy użyciu góry jest preferowane przy użyciu zestawu ROWCOUNT z następujących powodów:
Ustaw ROWCOUNT powoduje, że większość wybierz INSERT, UPDATE i usuwanie instrukcji, aby zatrzymać przetwarzanie, gdy mają one wpływ na określoną liczbę wierszy.To zachowanie dotyczy także wewnątrz wypalania wyzwalaczy.
Jako część instrukcja SELECT optymalizator kwerendy można użyć wartości expression w klauzula TOP jako część generowanie planu wykonania kwerendy.Ponieważ ROWCOUNT zestaw jest używany poza instrukcja, która wykonuje kwerendę, jej wartość nie można użyć do wygenerowania planu kwerend dla kwerendy.