TOP (Transact-SQL)

Yalnızca ilk belirtir küme satırlarını sorgu sonuç döndürdü.küme Satır, bir sayı veya satırları bir yüzdesi olabilir.SELECT, INSERT, UPDATE, BIRLEŞTIRME ve DELETE deyimlerinde TOP ifade kullanılır.

Topic link iconTransact-SQL sözdizimi kuralları

[ 
     TOP (expression) [PERCENT]
     [ WITH TIES ]
]

Bağımsız değişkenler

  • expression
    Is the numeric expression that specifies the number of rows to be returned.expression is implicitly converted to a float value if PERCENT is specified; otherwise, it is converted to bigint.

    Sınırlandırmak parantez expression TOP INSERT, UPDATE, BIRLEŞTIRME ve DELETE deyimlerinde gereklidir. Geriye dönük uyumluluk için TOP expression olmadan parantez içinde bir SELECT deyimi desteklenir, ancak bu önerilmez.

    Sorgu bir ORDER BY yan tümce, ilk içeriyorsa expression satır veya expression ORDER BY yan tümcesiyle sipariş satırları yüzdesi döndürülür. Sorgu yok ORDER BY yan tümce varsa, satırları rasgele sırasıdır.

  • YÜZDE
    Sorguyu yalnızca ilk verdiğini gösterir. expression Satır, sonuç yüzde küme.

  • KRAVATLAR İLE
    Ek bir satır temel sonuç verdiğini belirtir küme the TOP, son görünen ORDER BY sütunları aynı değer n (PERCENT) satırı. TOP... WITH TIES, yalnızca SELECT ifadelerine belirtilebilir ve ORDER BY yan tümce, yalnızca "olarak belirtilir.

    Not

    The returned order of tying records is arbitrary.ORDER BY does not affect this rule.

Remarks

TOP, UPDATE ve DELETE deyimlerini bölümlendirilmiş görünümlerde ile birlikte kullanılamaz.

INSERT, UPDATE, BIRLEŞTIRME veya DELETE ile kullanılan bir TOP ifade içinde başvurulan satırları herhangi bir sırada düzenlenirler.ÜST n verir n rasgele bir satır. Örneğin, aşağıdaki INSERT deyim içeren ORDER BY yan tümce ve henüz bu yan tümce tarafından doğrudan başvurulan satırları etkilemez INSERT deyim.

INSERT TOP (2) INTO Table2 (ColumnB) 
    SELECT ColumnA FROM Table1 
    ORDER BY ColumnA;

The ORDER BY yan tümce in the previous query references only the rows that are returned by the nested SELECT deyim. The INSERT deyim chooses any two rows returned by the SELECT deyim. Üst iki gelen satırları emin olmak için SELECT alt sorgu eklenen, sorgu aşağıdaki gibi yeniden yazın.

INSERT INTO Table2 (ColumnB) 
    SELECT TOP (2) ColumnA FROM Table1 
    ORDER BY ColumnA;

SQL Server Güncelleştirme TOP yan tümcesinde oluşturulmuş bir görünüm sağlar.Görünüm tanımı TOP yan tümce içerdiği için sonucu, artık TOP ifade gereksinimlerini karşılıyorsa, bir güncelleştirme nedeniyle görünümden belirli satırları kaybolabilir.Daha fazla bilgi için bkz:Bir görünümü kullanarak verileri değiştirme.

Sorguda ifade TOP, tetikleyici harekete nedeniyle yürütülebilecek ifadeleri etkilemez.Eklenen ve güncelleştirilen tablolar tetikleyiciler, yalnızca gerçekten tarafından INSERT, UPDATE, BIRLEŞTIRME veya DELETE deyimleri etkilenen satırları gösterir.

TOP BIRLEŞTIRMEDE kullanma deyim

Ne zaman BIRLEŞTIRME deyiminde belirtilen, tüm kaynak tablosundan sonra TOP yan tümce uygulanır ve hedef tablo birleştirilmiş ve birleştirilmiş bir ekleme, geçerli olmayan satırları güncelleştirmek veya eylem silmek kaldırıldı.TOP yan tümce daha birleştirilen satır sayısı, belirtilen değere azaltır ve ekleme, güncelleştirme ve silme eylemleri sıralanmamış bir biçimde birleştirilen kalan satırlara uygulanır.Diğer bir deyişle, satırları WHEN yan tümcelerini tanımlanan eylemler arasında dağıtılmış hiçbir sipariş yok.Örneğin, TOP (10), 10 satır etkiler; bu satır, 7 güncelleştirildi ve 3 eklenmiş veya silinmiş 1, 5 güncelleştirildi ve 4 eklenen vb..

Çünkü BIRLEŞTIRME deyim bir tam bir tablo taraması gerçekleştirir kaynak ve hedef tablo büyük bir tablo, birden çok toplu işlem oluşturarak değiştirmek için TOP yan tümce kullanarak g/Ç performansı etkilenebilir.Bu senaryoda, tüm ardışık toplu işlemi, yeni satırlar hedef emin olmak önemlidir.Daha fazla bilgi için bkz:BIRLEŞTIRME ekstresi performansı en iyi duruma getirme.

Örnekler

C.TOP değişkenleri ile kullanma

Aşağıdaki örnek bir değişken ilk elde etmek için kullanır. 10 listelenen çalışanları dbo.Employee tablonun AdventureWorks Veritabanı.

b.TOP, WITH TIES PERCENT ile kullanma

Aşağıdaki örnek üst alır. 10 en yüksek maaş ve bunları azalan maaş temel hızına göre sipariş döndürür tüm çalışanları yüzdesi. Belirtme WITH TIES bile bunu aşıyor maaşları döndürdü olan en düşük maaş için eşit tüm çalışanları sonuç kümesinde dahil edildiğinden emin yapar. 10 Çalışan yüzdesi.