Condividi tramite


$PARTITION (Transact-SQL)

Restituisce il numero della partizione a cui verrebbe mappato un set di valori di una colonna di partizionamento per una funzione di partizione specificata.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

[ database_name. ] $PARTITION.partition_function_name(expression)

Argomenti

  • database_name
    Nome del database contenente la funzione di partizione.

  • partition_function_name
    Nome di una funzione di partizione esistente in base alla quale viene applicato un set di valori di una colonna di partizionamento.

  • expression
    Espressione il cui tipo di dati deve corrispondere al tipo di dati della colonna di partizionamento corrispondente o deve poter essere convertito in modo implicito in tale tipo di dati. expression può essere anche il nome di una colonna di partizionamento che partecipa a partition_function_name.

Tipi restituiti

int

Osservazioni

$PARTITION restituisce un valore int compreso tra 1 e il numero di partizioni della funzione di partizione.

$PARTITION restituisce il numero di partizione per qualsiasi valore valido, indipendentemente dal fatto che il valore esista in una tabella o in un dice partizionato che utilizza la funzione di partizione.

Esempi

A. Recupero del numero di partizione per un set di valori di colonne di partizionamento

Nell'esempio seguente viene creata una funzione di partizione RangePF1 che esegue il partizionamento di una tabella o di un indice in quattro partizioni.. $PARTITION consente di stabilire che il valore 10, che rappresenta la colonna di partizionamento di RangePF1, verrebbe inserito nella partizione 1 della tabella.

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

B. Recupero del numero di righe di ogni partizione non vuota di una tabella o di un indice partizionato

Nell'esempio seguente viene restituito il numero di righe di ogni partizione della tabella TransactionHistory contenente dati. La tabella TransactionHistory utilizza la funzione di partizione TransactionRangePF1 ed è partizionata in base alla colonna TransactionDate.

Nota

Per eseguire l'esempio è necessario innanzitutto eseguire lo script PartitionAW.sql nel database di esempio AdventureWorks2008R2. Per ulteriori informazioni, vedere Considerazioni per l'installazione di esempi e di database di esempio di 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. Restituzione di tutte le righe di una partizione di una tabella o di un indice partizionato

Nell'esempio seguente vengono restituite tutte le righe incluse nella partizione 5 della tabella TransactionHistory.

Nota

Per eseguire l'esempio è necessario innanzitutto eseguire lo script PartitionAW.sql nel database di esempio AdventureWorks2008R2. Per ulteriori informazioni, vedere Considerazioni per l'installazione di esempi e di database di esempio di SQL Server.

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

Vedere anche

Riferimento