Aracılığıyla paylaş


$PARTITION (Transact-SQL)

İçine bir küme , bölümleme sütun değerleri için herhangi bir belirtilen bölüm işleveşlenmesi bölüm numarasını döndürür.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

[ database_name. ] $PARTITION.partition_function_name(expression)

Bağımsız değişkenler

  • database_name
    Bölüm işleviçeren veritabanı adıdır.

  • partition_function_name
    Hangi karşı varolan tüm bölüm işlev bir küme , bölümleme sütun değerleri uygulanır adıdır.

  • expression
    Olan bir ifade veri türü eşleşen veya karşılık gelen bölümleme sütunveri türüne örtük olarak dönüştürülebilir.expressionAyrıca şu anda bir bölümleme sütun adı olarak partition_function_name.

Dönüş Türleri

int

Açıklamalar

$Bölüm işlevi bir int bölüm işlevbölüm sayısı ile 1 arasında bir değer.

$BÖLÜM bölüm numarası değeri şu anda bölümlenmiş tablo veya bölüm işlevkullanan dizin içinde var olup olmadığına bakılmaksızın herhangi bir geçerli değer verir.

Örnekler

A.Bölüm numarası bir küme , bölümlemeiçinsütun değerler alma

Aşağıdaki örnek, bir bölüm işlevoluştururRangePF1 bir tablo ya da dizin dört bölüm halinde bölüm $BÖLÜMÜ, belirlemek için kullanılan değer 10, bölümleme sütun temsil eden RangePF1, tablo1 bölümünde koyabilirsiniz.

USE AdventureWorks2008R2 ;
GO
CREATE PARTITION FUNCTION RangePF1 ( int )
AS RANGE FOR VALUES (10, 100, 1000) ;
GO
SELECT $PARTITION.RangePF1 (10) ;
GO

B.bölümlenmiş tablo veya dizin boş olmayan her bölümünde satır sayısını alma

Aşağıdaki örnek, her tablobölümünde satır sayısını verirTransactionHistory içeren veri. TransactionHistorytablo bölüm işlevkullanan TransactionRangePF1 ve üzerinde bölümlenmiş TransactionDatesütun.

Not

yürütmek Bu örnekte, önce karşı PartitionAW.sql komut dosyasını çalıştırmanız gerekir AdventureWorks2008R2 örnek veritabanı.Daha fazla bilgi için, bkz. SQL Server Örnekleri ve Örnek Veritabanlarının Yüklenmesiyle İlgili Önemli Noktalar.

USE AdventureWorks2008R2 ;
GO
SELECT $PARTITION.TransactionRangePF1(TransactionDate) AS Partition, 
COUNT(*) AS [COUNT] FROM Production.TransactionHistory 
GROUP BY $PARTITION.TransactionRangePF1(TransactionDate)
ORDER BY Partition ;
GO

C.bölümlenmiş tablo veya dizin bölümünden tüm satırları döndüren

Aşağıdaki örnek bölümünde bulunan tüm satırları verir 5 tablo TransactionHistory.

Not

yürütmek Bu örnekte, önce karşı PartitionAW.sql komut dosyasını çalıştırmanız gerekir AdventureWorks2008R2 örnek veritabanı.Daha fazla bilgi için, bkz. SQL Server Örnekleri ve Örnek Veritabanlarının Yüklenmesiyle İlgili Önemli Noktalar.

SELECT * FROM Production.TransactionHistory
WHERE $PARTITION.TransactionRangePF1(TransactionDate) = 5 ;