Udostępnij za pośrednictwem


$ PARTITION (języka Transact-SQL)

Zwraca numer partycji na którą jest mapowany zestaw wartości kolumn partycjonowania dla określonej funkcji partycjonowania.

Topic link iconKonwencje składni języka Transact-SQL

[ database_name. ] $PARTITION.partition_function_name(expression)

Argumenty

  • database_name
    Nazwa bazy danych zawierającej funkcję partycjonowania.

  • partition_function_name
    Nazwa dowolnej istniejącej funkcji partycjonowania, względem której stosowany jest zestaw wartości kolumn partycjonowania.

  • expression
    Is an expression whose data type must either match or be implicitly convertible to the data type of its corresponding partitioning column.expression can also be the name of a partitioning column that currently participates in partition_function_name.

Zwracane typy

int

Remarks

Zwraca wartość $ PARTITION int wartość z zakresu od 1 do liczby partycji z funkcja partycji.

Zmienna $PARTITION zwraca numer partycji dla każdej prawidłowej wartości, niezależnie od tego, czy wartość ta obecnie istnieje w partycjonowanej tabeli lub indeksie, który używa funkcji partycjonowania.

Przykłady

A.Uzyskiwanie numeru partycji dla zestawu wartości kolumn partycjonowania

Poniższy przykład tworzy funkcja partycji RangePF1 które będzie partycji tabela lub indeks do czterech partycji. $ PARTITION jest używana do określenia, że wartość 10, reprezentujący kolumna partycjonowania RangePF1, może znajdować się w partycjonowanie 1 w tabela.

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

B.Uzyskiwanie liczby wierszy w każdej niepustej partycji partycjonowanej tabeli lub indeksu.

W poniższym przykładzie zwraca liczbę wierszy w każdej partycji tabela TransactionHistory zawierający dane. The TransactionHistory tabela uses partition funkcja TransactionRangePF1 and is partitioned on the TransactionDate kolumna.

Uwaga

Aby wykonać w tym przykładzie, konieczne jest najpierw uruchomienie skryptu PartitionAW.sql przed AdventureWorks Przykładowa baza danych. Aby uzyskać więcej informacji zobaczReadme_PartitioningScript.

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

C.Wiadomości w trakcie wykonywania

W poniższym przykładzie są zwracane wszystkie wiersze, które znajdują się w partycji 5 z tabela TransactionHistory.

Uwaga

Aby wykonać w tym przykładzie, konieczne jest najpierw uruchomienie skryptu PartitionAW.sql przed AdventureWorks Przykładowa baza danych. Aby uzyskać więcej informacji zobaczReadme_PartitioningScript.

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