$PARTITION (Transact-sql)

İçine sütun değerlerini bölümleme kümesi eşlenmiş bölüm işlevi belirtilen için bölüm numarası verir SQL Server 2012.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

[ database_name. ] $PARTITION.partition_function_name(expression)

Bağımsız değişkenler

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

  • partition_function_name
    Hangi karşı herhangi bir bölüm işlevinin sütun değerlerini bölümleme kümesi uygulanır adıdır.

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

Dönüş Türleri

int

Açıklamalar

$PARTITION işlevi bir int1 ve bölüm bölüm işlevi sayısı arasında değer.

$PARTITION değeri şu anda bölümlenmiş tablo veya bölüm işlevini kullanan dizin içinde varolup bakılmaksızın herhangi bir geçerli değer, bölüm numarasını döndürür.

Örnekler

A.Sütun değerlerini bölümleme kümesi için bölüm numarası alma

Aşağıdaki örnek, Bölüm işlevi oluşturur RangePF1Bu bölüm tablo veya dizin dört bölüm. $PARTITION bu belirlemek için kullanılır değeri 10, bölümleme sütununda temsil eden RangePF1, Tablo 1 bölüm koymak istiyorum.

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

USE AdventureWorks2012;
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 tablo her bölümünde satır sayısını verir TransactionHistoryveri içeren. TransactionHistoryTablo bölümü işlevini kullanan TransactionRangePF1ve üzerinde bölümlenmiş TransactionDatesütun.

Bu örneği çalıştırmak için karşı PartitionAW.sql komut dosyasını çalıştırmanız gerekir AdventureWorks2012 örnek veritabanı. Daha fazla bilgi için bkz: PartitioningScript.

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

USE AdventureWorks2012;
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 bir bölümünden tüm satırları döndüren

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

[!NOT]

Bu örneği çalıştırmak için karşı PartitionAW.sql komut dosyasını çalıştırmanız gerekir AdventureWorks2012 örnek veritabanı. Daha fazla bilgi için bkz: PartitioningScript.

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

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

Ayrıca bkz.

Başvuru

PARTITION FUNCTION (Transact-sql) oluştur