Ortak bir tablo ifadeleri kullanma
Ortak bir tablo ifade (CTE), geçici bir sonucu olarak düşünülebilir küme, tek bir SELECT, INSERT, UPDATE, DELETE veya CREATE VIEW ifade yürütme kapsamý içinde tanımlanır.Bir CTE türetilmiş bir benzer tablo, nesne ve yalnızca sorgu süresince kullanılacağını depolanmaz.Türetilmiş bir tablo, farklı bir CTE self-referencing olabilir ve aynı sorguda birden çok kez başvuruyor.
Bir CTE için kullanılabilir:
Özyinelenen bir sorgu oluşturun.Daha fazla bilgi için bkz:Kullanarak ortak tablo deyimleri özyinelemeli sorgular.
Genel bir görünümünü kullandığınızda, bir görünüm yerine bu gerekli değildir; diğer bir deyişle, meta veriler tanım depolamak gerekmez.
Enable gruplandırma skaler bir subselect veya bir işlev değil türetilmiş bir sütuna göre deterministic veya dış erişebilir.
Sonuç başvuru tablo deyimde birden çok kez aynı.
Bir CTE kullanılarak geliştirilmiş okunurluk ve bakımının karmaşık sorgular içinde kolaylıkla avantajları sunar.Sorguyu farklı, basit ve mantıksal yapı taşları bölünebilir.Bu basit blok sonra sonuç kümesi oluşturulana kadar daha karmaşık, ara CTEs oluşturmak için kullanılır.
Kullanıcı tanımlı yordamları, işlevleri, saklı yordamlar, Tetikleyiciler veya görünümler gibi CTEs tanımlanabilir.
Bir CTE yapısı
Sorguda CTE tanımlama CTE ve bir isteğe bağlı bir sütun listesi gösteren bir ifade adını BIR CTE oluşur.Bir CTE tanımlandıktan sonra bir tablo veya görünümü içinde bir SELECT, INSERT, UPDATE veya DELETE deyim gibi da başvurulabilir.CREATE VIEW deyim parçası, tanımlayan deyim içinde BIR CTE de kullanılabilir.
Bir CTE yapısını temel sözdizimi şöyledir:
WITH expression_name [ ( column_name [,...n] ) ]
AS
( CTE_query_definition )
Sütun adları listesini, yalnızca tüm sonuç sütunlar için farklı bir ad sorgu tanımında belirttiğinizde bu işlem isteğe bağlıdır.
CTE çalıştırılacak bildirimdir:
SELECT <column_list>
FROM expression_name;
Örnek
Aşağıdaki örnek, bileşenleri CTE yapısını gösterir: ifade ad, sütun listesi ve sorgu. CTE ifade Sales_CTE üç sütun () sahip.SalesPersonID, NumberOfOrders, ve MaxDate) ve toplam satış siparişleri ve satış siparişinin son tarih sayısı olarak tanımlanan SalesOrderHeader tablo her satışçı için. deyim yürütüldüğünde, the CTE iki kez başvurulmaktadır: Satışçı için seçilen sütunları geri dönün ve yeniden satışçının yöneticisini benzer ayrıntıları almak için saat. Satış Temsilcisi hem de yönetici için verileri tek bir satırda döndürülür.
Kısmi bir sonuç işte küme:
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