Przy użyciu znanych wyrażenia tabela

Typowe wyrażenie tabela (CTE) można uważać za zestaw wyników tymczasowe, które zdefiniowano w ramach wykonywania pojedynczej instrukcja SELECT, INSERT, UPDATE, DELETE lub CREATE VIEW.CTE jest podobna do tabela pochodnej go nie są przechowywane jako obiekt i trwa tylko przez cały czas trwania kwerendy.W przeciwieństwie do tabela pochodnej CTE może być self-referencing i można odwoływać się wiele razy w tej samej kwerendy.

CTE może służyć do:

  • Utwórz kwerendę cykliczną.Aby uzyskać więcej informacji zobaczRecursive Queries Using Common Table Expressions.

  • Zamiast widoku ogólnego użycia widoku nie jest wymagany; to znaczy, nie trzeba przechowywać definicji metadane.

  • Umożliwiają grupowanie na podstawie kolumna, która jest pochodną subselect skalarnymi lub funkcja, która nie jest deterministyczny lub dostępem z zewnątrz.

  • Odwołanie w tabela wynikowej wiele razy w tym samym sprawozdaniu.

Za pomocą CTE oferuje korzyści związane z poprawę czytelności i łatwości utrzymaniem złożonych kwerend.Kwerendę można podzielić na bloki konstrukcyjne oddzielnych, prostych, logiczne.Następnie można używać tych bloków proste do budowania CTEs bardziej złożone, tymczasowe, dopóki nie jest generowany zestaw wyników końcowych.

CTEs mogą być definiowane w procedurach użytkownika, takie jak funkcji, procedur przechowywanych, wyzwalaczy lub widoków.

Struktura CTE

CTE składa się z nazwą wyrażenie CTE, z listy opcjonalne kolumna i definiowanie CTE kwerendy.Po zdefiniowaniu CTE można się odwoływać, takich jak tabela lub widok, można w instrukcja SELECT, INSERT, UPDATE lub DELETE.CTE można również w instrukcja CREATE VIEW jako część jego definiowanie instrukcja SELECT.

Struktura podstawowa składnia CTE jest:

WITH expression_name [ ( column_name [,...n] ) ]

AS

( CTE_query_definition )

Lista nazw kolumn jest opcjonalne tylko wtedy, gdy różne nazwy wszystkich kolumn wynikowych są dostarczane w definicji kwerendy.

Instrukcja uruchomienie CTE jest:

SELECT <column_list>

FROM expression_name;

Przykład

W poniższym przykładzie pokazano składniki struktury CTE: Nazwa wyrażenie, lista kolumn i kwerendy. Wyrażenie CTE Sales_CTE zawiera trzy kolumny)SalesPersonID, NumberOfOrders, a MaxDate) i jest definiowana jako liczba zamówień sprzedaży i Data ostatniego zamówienia sprzedaży w SalesOrderHeader Tabela dla każdego sprzedawcy. Podczas wykonywania instrukcja CTE odwołuje się dwa razy: jeden raz, aby przywrócić wybrane kolumny dla sprzedawcy i ponownie mają być pobrane informacje podobne do menedżera sprzedawcy. Dane dla sprzedawcy i Menedżera są zwracane w jednym wierszu.

W tym polu jest zestaw wyników częściowych:

EmployeeID  NumberOfOrders MaxDate  ManagerID NumberOfOrders MaxDate
----------- -------------- ---------- --------- -------------- ----------
268         48             2004-06-01 273       NULL           NULL
275         450            2004-06-01 268       48             2004-06-01
276         418            2004-06-01 268       48             2004-06-01
277         473            2004-06-01 268       48             2004-06-01