$PARTITION (Transact-SQL)$PARTITION (Transact-SQL)

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve el número de partición al que se asignaría un conjunto de valores de columnas de partición para cualquier función de partición especificada en SQL Server 2017SQL Server 2017.Returns the partition number into which a set of partitioning column values would be mapped for any specified partition function in SQL Server 2017SQL Server 2017.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
[ database_name. ] $PARTITION.partition_function_name(expression)  

ArgumentosArguments

database_namedatabase_name
Es el nombre de la base de datos que contiene la función de partición.Is the name of the database that contains the partition function.

partition_function_namepartition_function_name
Es el nombre de cualquier función de partición existente con la que se está aplicando un conjunto de valores de columnas de partición.Is the name of any existing partition function against which a set of partitioning column values are being applied.

expressionexpression
Es una expression cuyo tipo de datos debe coincidir con el tipo de datos de su columna de partición correspondiente, o debe poder convertirse a dicho tipo de datos de forma implícita.Is an expression whose data type must either match or be implicitly convertible to the data type of its corresponding partitioning column. expression también puede ser el nombre de una columna de partición que participa en ese momento en partition_function_name.expression can also be the name of a partitioning column that currently participates in partition_function_name.

Tipos devueltosReturn Types

intint

NotasRemarks

$PARTITION devuelve un valor int entre 1 y el número de particiones de la función de partición.$PARTITION returns an int value between 1 and the number of partitions of the partition function.

$PARTITION devuelve el número de partición de cualquier valor válido, independientemente de si el valor existe en ese momento en una tabla o índice con particiones que utilice la función de partición.$PARTITION returns the partition number for any valid value, regardless of whether the value currently exists in a partitioned table or index that uses the partition function.

EjemplosExamples

A.A. Obtener el número de partición de un conjunto de valores de columnas de particiónGetting the partition number for a set of partitioning column values

En el siguiente ejemplo se crea una función de partición RangePF1 que realizará cuatro particiones en una tabla o un índice.The following example creates a partition function RangePF1 that will partition a table or index into four partitions. $PARTITION se utiliza para determinar que el valor 10, que representa la columna de partición de RangePF1, se colocaría en la partición 1 de la tabla.$PARTITION is used to determine that the value 10, representing the partitioning column of RangePF1, would be put in partition 1 of the table.

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

B.B. Obtener el número de filas de cada partición no vacía de una tabla o un índice con particionesGetting the number of rows in each nonempty partition of a partitioned table or index

En el siguiente ejemplo se devuelve el número de filas de cada partición de la tabla TransactionHistory que contiene datos.The following example returns the number of rows in each partition of table TransactionHistory that contains data. La tabla TransactionHistory utiliza la función de partición TransactionRangePF1. Además, se crean particiones en la columna TransactionDate.The TransactionHistory table uses partition function TransactionRangePF1 and is partitioned on the TransactionDate column.

Para ejecutar este ejemplo, primero hay que ejecutar el script PartitionAW.sql en la base de datos de ejemplo AdventureWorks2012AdventureWorks2012.To execute this example, you must first run the PartitionAW.sql script against the AdventureWorks2012AdventureWorks2012 sample database. Para más información, vea PartitioningScript.For more information, see 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.C. Devolver todas las filas de una partición de una tabla o un índice con particionesReturning all rows from one partition of a partitioned table or index

En el siguiente ejemplo se devuelven todas las filas que se encuentran en la partición 5 de la tabla TransactionHistory.The following example returns all rows that are in partition 5 of the table TransactionHistory.

Nota

Para ejecutar este ejemplo, primero hay que ejecutar el script PartitionAW.sql en la base de datos de ejemplo AdventureWorks2012AdventureWorks2012.To execute this example, you must first run the PartitionAW.sql script against the AdventureWorks2012AdventureWorks2012 sample database. Para más información, vea PartitioningScript.For more information, see PartitioningScript.

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

Consulte tambiénSee Also

CREATE PARTITION FUNCTION (Transact-SQL)CREATE PARTITION FUNCTION (Transact-SQL)