$PARTITION (Transact-SQL)

Gibt die Nummer der Partition zurück, der eine Gruppe von Partitionierungsspaltenwerten für eine beliebige angegebene Partitionsfunktion in SQL Server 2012 zugeordnet würde.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

[ database_name. ] $PARTITION.partition_function_name(expression)

Argumente

  • database_name
    Der Name der Datenbank, die die gespeicherte Partitionsfunktion enthält.

  • partition_function_name
    Der Name einer beliebigen, vorhandenen Partitionsfunktion, für die eine Gruppe von Partitionierungsspaltenwerten angegeben wird.

  • expression
    Ein Ausdruck, dessen Datentyp mit dem der zugehörigen Partitionierungsspalte entweder übereinstimmen oder implizit in diesen konvertierbar sein muss. expression kann auch der Name einer Partitionierungsspalte sein, die gerade an partition_function_name teilnimmt.

Rückgabetypen

int

Hinweise

$PARTITION gibt einen int-Wert zwischen 1 und der Anzahl von von der Partitionierungsfunktion betroffenen Partitionen zurück.

$PARTITION gibt die Partitionsnummer für jeden gültigen Wert zurück. Dabei spielt es keine Rolle, ob der Wert sich zurzeit in einer partitionierten Tabelle oder einem partitionierten Index befindet, die/der die Partitionsfunktion verwendet.

Beispiele

A.Abrufen der Partitionsnummer für eine Gruppe von Partitionierungsspaltenwerten

Im folgenden Beispiel wird die Partitionsfunktion RangePF1 erstellt, die eine Tabelle oder einen Index in vier Partitionen partitioniert. Mit $PARTITION wird bestimmt, dass der Wert 10, der für die Partitionierungsspalte von RangePF1 steht, in Partition 1 der Tabelle eingefügt wird.

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

B.Abrufen der Anzahl von Zeilen in jeder nicht leeren Partition einer partitionierten Tabelle oder eines partitionierten Indexes

Im folgenden Beispiel wird die Anzahl von Zeilen mit Daten in jeder Partition der TransactionHistory-Tabelle zurückgegeben. Die TransactionHistory-Tabelle verwendet die Partitionsfunktion TransactionRangePF1 und wird an der Spalte TransactionDate partitioniert.

Sie müssen zunächst das Skript PartitionAW.sql für die Beispieldatenbank AdventureWorks2012 ausführen, um dieses Beispiel auszuführen. Weitere Informationen finden Sie unter 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

C.Zurückgeben aller Zeilen aus einer Partition einer partitionierten Tabelle oder eines partitionierten Indexes

Im folgenden Beispiel werden alle Zeilen zurückgegeben, die in der Partition 5 der TransactionHistory-Tabelle enthalten sind.

HinweisHinweis

Sie müssen zunächst das Skript PartitionAW.sql für die Beispieldatenbank AdventureWorks2012 ausführen, um dieses Beispiel auszuführen. Weitere Informationen finden Sie unter PartitioningScript.

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

Siehe auch

Verweis

CREATE PARTITION FUNCTION (Transact-SQL)