Share 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 no SQL Server 2012.

Ícone de vínculo de tópico Convenções da 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 corresponder ou pode ser convertido implicitamente no tipo de dados de sua coluna de particionamento correspondente. expression também pode ser o nome de uma coluna de particionamento que atualmente participa 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 AdventureWorks2012;
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 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.

Para executar este exemplo, você deve primeiro executar o script PartitionAW.sql no banco de dados de amostra AdventureWorks2012 . Para obter mais informações, consulte 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.Retornando todas as linhas de uma partição de um índice ou 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 AdventureWorks2012 . Para obter mais informações, consulte PartitioningScript.

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

Consulte também

Referência

CREATE PARTITION FUNCTION (Transact-SQL)