Condividi tramite


$PARTITION (Transact-SQL)

Restituisce il numero della partizione a cui verrebbe eseguito il mapping di un set di valori di una colonna di partizionamento per una funzione di partizione specificata in SQL Server 2012.

Icona di collegamento a un argomento Convenzioni 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 AdventureWorks2012;
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.

Per eseguire l'esempio è necessario innanzitutto eseguire lo script PartitionAW.sql nel database di esempio AdventureWorks2012 . Per ulteriori informazioni, vedere 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.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 AdventureWorks2012 . Per ulteriori informazioni, vedere PartitioningScript.

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

Vedere anche

Riferimento

CREATE PARTITION FUNCTION (Transact-SQL)