Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Trouver la colonne de partitionnement pour une table partitionnée dans SQL Server (T-SQL)

Dans SQL Server, vous pouvez utiliser la requête suivante pour déterminer la colonne de partitionnement d'une table partitionnée.

SELECT 
    t.name AS [Table], 
    c.name AS [Partitioning Column],
    TYPE_NAME(c.user_type_id) AS [Column Type],
    ps.name AS [Partition Scheme] 
FROM sys.tables AS t   
JOIN sys.indexes AS i   
    ON t.[object_id] = i.[object_id]   
    AND i.[type] <= 1
JOIN sys.partition_schemes AS ps   
    ON ps.data_space_id = i.data_space_id   
JOIN sys.index_columns AS ic   
    ON ic.[object_id] = i.[object_id]   
    AND ic.index_id = i.index_id   
    AND ic.partition_ordinal >= 1 
JOIN sys.columns AS c   
    ON t.[object_id] = c.[object_id]   
    AND ic.column_id = c.column_id   
WHERE t.name = 'Movies';

Résultat :

+---------+-----------------------+---------------+-----------------------+
| Table   | Partitioning Column   | Column Type   | Partition Scheme      |
|---------+-----------------------+---------------+-----------------------|
| Movies  | MovieId               | int           | MoviesPartitionScheme |
+---------+-----------------------+---------------+-----------------------+

Assurez-vous d'échanger Movies avec le nom de votre table.

Dans mon cas, la colonne de partitionnement est MovieId et c'est un int taper.