如何获取数据库中所有分区表的列表?
我应该查看哪些系统表/DMV?
这个查询应该给你你想要的:
select distinct t.name from sys.partitions p inner join sys.tables t on p.object_id = t.object_id where p.partition_number <> 1
sys.partitions目录视图提供了表和大多数索引的所有分区的列表。只需加入sys.tables即可获得表格。
sys.partitions
sys.tables
所有表都至少有一个分区,因此如果您专门寻找分区表,那么您必须根据以下条件过滤此查询sys.partitions.partition_number <> 1(对于非分区表,partition_number始终等于 1)。
sys.partitions.partition_number <> 1
partition_number