Limiting Result Sets by Using TOP and PERCENT
Można użyć U GÓRY klauzula, aby ograniczyć liczbę wierszy zwracanych zestaw wyników.
TOP ( expression ) [ PERCENT ] [ WITH TIES ]
expression to wyrażenie numeryczne, które określa liczbę wierszy, które mają zostać zwrócone; lub PERCENT jest określona, (określony przez wartość procentową expression) wynik zwracany jest zestaw 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 TOP ma również ORDER BY klauzula, wiersze, które mają być zwracane są wybierane zestaw wyników zamówione.Zestaw wyników całego jest wbudowana w określonej kolejności i u góry n zwracane są wiersze 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 klauzulę ORDER BY, nawet jeśli w ten sposób przekracza określony przez liczbę expression.
W stosunku do TOP.ZESTAW ROWCOUNT
Inne metoda ograniczanie rozmiaru zestaw wyników jest wykonać ROWCOUNT z zestaw n Instrukcja przed wykonaniem instrukcji. zestaw ROWCOUNT różni się od TOP w następujący sposób:
TOP klauzula WHERE odnosi się do pojedynczej instrukcja SELECT, jest określona.zestaw ROWCOUNT pozostają w mocy, dopóki nie zostanie wykonany innej instrukcja zestaw ROWCOUNT, takie jak zestaw ROWCOUNT 0 Aby wyłączyć tę opcję.
Important Note: Za pomocą zestaw ROWCOUNT nie będzie miało wpływu na DELETE, INSERT i UPDATE instrukcje w następnej wersji SQL Server. Należy unikać używania zestaw ROWCOUNT z instrukcji DELETE, INSERT i UPDATE w nowej pracy rozwoju i planuje się aplikacji korzystających aktualnie go zmodyfikować.Firma Microsoft zaleca, aby ponownie zapisywane, tak że DELETE, INSERT i UPDATE instrukcji, które aktualnie używają zestaw ROWCOUNT się przechowywały używania TOP.
Mimo, iż skutki ROWCOUNT zestaw dla instrukcji SELECT, pozostaje bez zmian, przy użyciu SELECT TOP jest preferowany zamiast używania zestaw ROWCOUNT z następujących powodów:
zestaw ROWCOUNT powoduje, że większość SELECT INSERT, UPDATE, a DELETE instrukcji, aby zatrzymać przetwarzanie, jeśli mają one wpływu na określoną liczbę wierszy.To zachowanie dotyczy zbyt wewnątrz wypalania wyzwalaczy.
W ramach instrukcja SELECT, optymalizator kwerendy można używać wartości expression w klauzula TOP w ramach generowanie planu wykonania kwerendy. Ponieważ ROWCOUNT zestaw jest używany poza instrukcja, która wykonuje kwerendę, jej wartość nie może służyć do wygenerowania planu kwerendy dla kwerendy.