Udostępnij za pośrednictwem


$PARTYCJI (Transact-SQL)

Zwraca numer partycji, do którego zestaw partycjonowaniewartości wkolumna mogłoby być mapowane dla jakiejkolwiek określonej partycji funkcja.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

[ database_name. ] $PARTITION.partition_function_name(expression)

Argumenty

  • database_name
    Jest to nazwa bazy danych, która zawiera funkcjapartycji.

  • partition_function_name
    Jest to nazwa jakiejkolwiek istniejącej partycji funkcja przeciwko któremu zestaw partycjonowaniewartości wkolumna są stosowane.

  • expression
    Jest wyrażenie typie danych musi odpowiadać lub być jawnie konwertowany na typ danych jego partycjonowanie kolumna.expressionmożna także nazwa partycjonowanie kolumna aktualnie wykorzystywanej w partition_function_name.

Zwracane typy

int

Uwagi

Zwraca PARTYCJI $ int wartość między 1 a liczba partycji partycji funkcja.

PARTYCJA $ zwraca numer partycji dla prawidłową wartość, niezależnie od tego, czy wartość aktualnie znajduje się w tabela partycjonowana lub indeksu, który używa funkcjapartycji.

Przykłady

A.Pobieranie wartości wkolumna numer partycji dla zestaw partycjonowanie

Poniższy przykład tworzy partycję funkcja RangePF1 , będzie partycji tabela lub indeks do czterech partycji.$PARTYCJI jest używana do określenia, że wartość 10, reprezentujących partycjonowanie kolumna z RangePF1, spowodowałaby partycji 1 tabela.

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

B.Uzyskiwanie liczbę wierszy w każdej partycji niepusty tabela partycjonowana lub indeksie

Poniższy przykład zwraca liczbę wierszy w każdej partycji tabela TransactionHistory zawierający dane.TransactionHistoryKorzysta ztabela partycji, funkcja TransactionRangePF1 i jest podzielony na partycje na TransactionDatekolumna.

Ostrzeżenie

Do wykonać w tym przykładzie należy najpierw uruchomić skrypt PartitionAW.sql przeciwko AdventureWorks2008R2 przykładowej bazy danych.Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.

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.Zwracanie wszystkich wierszy z jednej partycji tabela partycjonowana lub indeksu

Poniższy przykład zwraca wszystkie wiersze, które znajdują się w partycji 5 z tabela TransactionHistory.

Ostrzeżenie

Do wykonać w tym przykładzie należy najpierw uruchomić skrypt PartitionAW.sql przeciwko AdventureWorks2008R2 przykładowej bazy danych.Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.

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