यदि आपके पास SQL सर्वर में एक विभाजित तालिका या अनुक्रमणिका है, और आप यह निर्धारित करना चाहते हैं कि किसी दिए गए मान को किस विभाजन से मैप किया जाएगा, तो आप $PARTITION
के साथ यह अच्छा और तेज़ी से कर सकते हैं सिस्टम फ़ंक्शन।
आप सभी को पता होना चाहिए कि विभाजन फ़ंक्शन का नाम है (और निश्चित रूप से, वह मूल्य जिसमें आप रुचि रखते हैं)।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT $PARTITION.MoviesPartitionFunction(5);
परिणाम:
+--------------------+ | (No column name) | |--------------------| | 2 | +--------------------+
इस मामले में, मान 5
विभाजन संख्या 2 में जाएगा।
आइए कुछ और मान आज़माएँ।
SELECT
$PARTITION.MoviesPartitionFunction(-100) AS [-100],
$PARTITION.MoviesPartitionFunction(100) AS [100],
$PARTITION.MoviesPartitionFunction(1000) AS [1000],
$PARTITION.MoviesPartitionFunction(100000) AS [100000];
परिणाम:
+--------+-------+--------+----------+ | -100 | 100 | 1000 | 100000 | |--------+-------+--------+----------| | 1 | 2 | 3 | 4 | +--------+-------+--------+----------+
क्रॉस-डेटाबेस क्वेरीज़
किसी भिन्न डेटाबेस को क्वेरी करने के लिए आप डेटाबेस के नाम को उपसर्ग भी कर सकते हैं।
SELECT MovieDb.$PARTITION.MoviesPartitionFunction(5);
डेटा प्रकार रूपांतरण
आपके द्वारा प्रदान किए जाने वाले मान का डेटा प्रकार या तो मेल खाना चाहिए या इसके संगत विभाजन कॉलम के डेटा प्रकार से परोक्ष रूप से परिवर्तनीय होना चाहिए।
यदि नहीं, तो आपको शायद 245 त्रुटि मिलेगी।
SELECT $PARTITION.MoviesPartitionFunction('Hey!');
परिणाम:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Hey!' to data type int.
ध्यान दें कि $PARTITION
किसी भी मान्य मान के लिए विभाजन संख्या लौटाता है, भले ही मान वर्तमान में विभाजन तालिका या अनुक्रमणिका में मौजूद हो जो विभाजन फ़ंक्शन का उपयोग करता हो।