Compartilhar via


$PARTITION (Transact-SQL)

Retorna o número da partição na qual um conjunto de valores de coluna de particionamento são mapeados para qualquer função de partição especificada.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

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 AdventureWorks2008R2 ;
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çãoObservação

Para executar este exemplo, você deve primeiro executar o script PartitionAW.sql no banco de dados de amostra AdventureWorks2008R2. Para obter mais informações, consulte Considerações para instalar exemplos e bancos de dados de exemplo do 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. 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çãoObservação

Para executar este exemplo, você deve primeiro executar o script PartitionAW.sql no banco de dados de amostra AdventureWorks2008R2. Para obter mais informações, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL Server.

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

Consulte também

Referência