Pokud máte na serveru SQL rozdělenou tabulku a nyní chcete spustit dotaz, který obsahuje číslo oddílu na každém řádku vráceném dotazem, můžete použít $PARTITION
systémová funkce k tomu.
$PARTITION
funkce vrací číslo oddílu, do kterého by byla namapována sada hodnot rozdělovacího sloupce pro jakoukoli zadanou funkci oddílu.
Můžete jej tedy použít ve svém SELECT
příkaz vrátit oddíl, do kterého každý řádek patří.
Příklad
Zde je příklad k demonstraci.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Výsledek:
+---------+-------------+-------------+ | CatId | CatName | Partition | |---------+-------------+-------------| | 1 | Meow | 2 | | 2 | Fluffy | 2 | | 3 | Scratch | 2 | | 4 | Bulldog | 2 | | 5 | King George | 2 | | 6 | Sharp | 3 | | 7 | Fritz | 3 | | 8 | Garfield | 3 | | 9 | Boss | 3 | +---------+-------------+-------------+
V tomto případě jsou řádky rozděleny mezi oddíly 2 a 3.
Oddíl 1 je prázdný (stejně jako oddíl 4), v souladu s doporučením společnosti Microsoft ponechat oddíly na obou koncích prázdné, aby se eliminoval přesun dat v případě rozdělení nebo sloučení oddílů.