Table partitioning
Here's a great intro: https://www.cathrinewilhelmsen.net/table-partitioning-in-sql-server/.
Partition number/range correspondence
Based on http://www.theboreddba.com/Categories/partitioning/How-to-Find-Partition-Range-Values.aspx.
SELECT QUOTENAME(OBJECT_SCHEMA_NAME(p.[object_id])) + '.' + QUOTENAME(OBJECT_NAME(p.[object_id])) AS TableName , p.partition_number , lv.[value] AS LowerBound , rv.[value] AS UpperBound , 'Excludes ' + IIF(f.boundary_value_on_right = 1, 'Upp', 'Low') + 'erBound (range ' + IIF(f.boundary_value_on_right = 1, 'RIGHT', 'LEFT') + ')' AS [RangeDirection] FROM sys.partitions p INNER JOIN sys.indexes i ON p.[object_id] = i.[object_id] AND p.index_id = i.index_id INNER JOIN sys.partition_schemes s ON i.data_space_id = s.data_space_id INNER JOIN sys.partition_functions f ON s.function_id = f.function_id LEFT JOIN sys.partition_range_values lv ON f.function_id = lv.function_id AND p.partition_number - 1 = lv.boundary_id LEFT JOIN sys.partition_range_values rv ON f.function_id = rv.function_id AND p.partition_number = rv.boundary_id WHERE p.index_id <= 1
Which partitioning schemes do partitioned tables use?
SELECT '[' + OBJECT_SCHEMA_NAME(i.[object_id]) + '].[' + OBJECT_NAME(i.[object_id]) + ']' , ps.[name] AS PartitionScheme , c.[name] AS PartitioningColumn , pf.[name] AS PartitionFunction FROM sys.indexes i INNER JOIN sys.partition_schemes ps ON ps.data_space_id = i.data_space_id INNER JOIN sys.partition_functions pf ON pf.function_id = ps.function_id INNER JOIN sys.index_columns ic ON ic.[object_id] = i.[object_id] AND ic.index_id = i.index_id INNER JOIN sys.columns c ON c.[object_id] = ic.[object_id] AND c.column_id = ic.column_id WHERE i.index_id <= 1 AND ic.partition_ordinal > 0