Ако имате разделена таблица в SQL Server и сега искате да изпълните заявка, която включва номера на дяла на всеки ред, върнат от заявката, можете да използвате $PARTITION
системна функция, за да направи точно това.
$PARTITION
функцията връща номера на дяла, в който набор от стойности на колони за разделяне ще бъде съпоставен за всяка определена функция на дял.
Следователно можете да го използвате във вашия SELECT
оператор за връщане на дяла, към който принадлежи всеки ред.
Пример
Ето пример за демонстрация.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Резултат:
+---------+-------------+-------------+ | 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 | +---------+-------------+-------------+
В този случай редовете са разпределени между дялове 2 и 3.
Дял 1 е празен (както и дял 4), в съответствие с препоръката на Microsoft да се оставят празни дялове в двата края, за да се елиминира движението на данни в случай, че дяловете са разделени или обединени.