यदि आपके पास SQL सर्वर में एक विभाजित तालिका या अनुक्रमणिका है, और आप विभाजन फ़ंक्शन के पैरामीटर प्रकार की जांच करना चाहते हैं, तो आप sys.partition_parameters
का उपयोग कर सकते हैं सिस्टम कैटलॉग व्यू।
यह दृश्य किसी पार्टीशन फ़ंक्शन के प्रत्येक पैरामीटर के लिए एक पंक्ति देता है।
पैरामीटर प्रकार तालिका या अनुक्रमणिका में विभाजन स्तंभ के डेटा प्रकार से मेल खाना चाहिए या परोक्ष रूप से परिवर्तनीय होना चाहिए।
उदाहरण
यहां एक उदाहरण दिया गया है जो sys.partition_parameters
. द्वारा लौटाए गए कॉलम दिखाता है देखें।
SELECT * FROM sys.partition_parameters;
परिणाम:
+---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------+ | function_id | parameter_id | system_type_id | max_length | precision | scale | collation_name | user_type_id | |---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------| | 65542 | 1 | 56 | 4 | 10 | 0 | NULL | 56 | +---------------+----------------+------------------+--------------+-------------+---------+------------------+----------------+
मेरे पास केवल एक विभाजन कार्य है, और इसलिए केवल एक पंक्ति लौटा दी जाती है।
यहां वर्टिकल आउटपुट का उपयोग करके फिर से परिणाम दिया गया है (आपको बग़ल में स्क्रॉल करने से बचाने के लिए):
function_id | 65542 parameter_id | 1 system_type_id | 56 max_length | 4 precision | 10 scale | 0 collation_name | NULL user_type_id | 56
प्रकार का नाम प्राप्त करें
sys.partition_parameters
दृश्य वास्तव में प्रकार का नाम वापस नहीं करता है। यह टाइप आईडी देता है। दरअसल, यह सिस्टम टाइप और यूजर डिफाइन्ड टाइप दोनों की टाइप आईडी लौटाता है।
सौभाग्य से, आप हम TYPE_NAME()
. का उपयोग कर सकते हैं प्रत्येक का नाम वापस करने के लिए कार्य करें।
SELECT
function_id,
parameter_id,
TYPE_NAME(system_type_id) AS [System Type],
max_length,
precision,
scale,
collation_name,
TYPE_NAME(user_type_id) AS [User Type]
FROM sys.partition_parameters;
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
function_id | 65542 parameter_id | 1 System Type | int max_length | 4 precision | 10 scale | 0 collation_name | NULL User Type | int
फ़ंक्शन का नाम वापस करें
हम sys.partition_functions
. में भी शामिल हो सकते हैं इसके आईडी के बजाय फ़ंक्शन का नाम वापस करने के लिए देखें।
SELECT
pf.name,
pp.parameter_id,
TYPE_NAME(pp.system_type_id) AS [System Type],
pp.max_length,
pp.precision,
pp.scale,
pp.collation_name,
TYPE_NAME(pp.user_type_id) AS [User Type]
FROM sys.partition_parameters pp
INNER JOIN sys.partition_functions pf
ON pf.function_id = pp.function_id;
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
name | MoviesPartitionFunction parameter_id | 1 System Type | int max_length | 4 precision | 10 scale | 0 collation_name | NULL User Type | int