$PARTITION (Transact-SQL)
Retorna o número de partição no qual um conjunto de valores de coluna de particionamento são mapeados para qualquer função de partição especificada.
Sintaxe
[ database_name. ] $PARTITION.partition_function_name(expression)
Argumentos
database_name
É o nome do banco de dados que contém a função de partição.partition_function_name
É o nome de qualquer função de partição existente na qual um conjunto de valores de coluna de particionamento é aplicado.expression
É uma expressão cujo tipo de dados deve ser correspondente ou ser implicitamente conversível ao tipo de dados de sua coluna de particionamento análoga. expression também pode ser o nome de uma coluna de particionamento que participe atualmente de partition_function_name.
Tipos de retorno
int
Comentários
$PARTITION retorna um valor int entre 1 e o número de partições da função de partição.
$PARTITION retorna o número de partição para qualquer valor válido, independentemente de o valor existir atualmente em um índice ou uma tabela particionada que use a função de partição.
Exemplos
A. Obtendo o número de partições para um conjunto de valores de coluna de particionamento
O exemplo a seguir cria uma função de partição RangePF1 que dividirá uma tabela ou índice em quatro partições. $PARTITION é usado para determinar se o valor 10, representando a coluna de particionamento de RangePF1, será colocado na partição 1 da tabela.
USE AdventureWorks ;
GO
CREATE PARTITION FUNCTION RangePF1 ( int )
AS RANGE FOR VALUES (10, 100, 1000) ;
GO
SELECT $PARTITION.RangePF1 (10) ;
GO
B. Obtendo o número de linhas em cada partição não vazia de um índice ou uma tabela particionada
O exemplo a seguir retorna o número de linhas em cada partição de tabela TransactionHistory que contém dados. A tabela TransactionHistory usa a função de partição TransactionRangePF1 e é particionada na coluna TransactionDate.
Observação |
---|
Para executar este exemplo, você deve primeiro executar o script PartitionAW.sql no banco de dados de amostra AdventureWorks. Para obter mais informações, consulte Readme_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. Retornando todas as linhas de uma partição de um índice ou uma tabela particionada
O exemplo a seguir retorna todas as linhas que estão na partição 5 da tabela TransactionHistory.
Observação |
---|
Para executar este exemplo, você deve primeiro executar o script PartitionAW.sql no banco de dados de amostra AdventureWorks. Para obter mais informações, consulte Readme_PartitioningScript. |
SELECT * FROM Production.TransactionHistory
WHERE $PARTITION.TransactionRangePF1(TransactionDate) = 5 ;