SQL सर्वर में, आप sp_rename
. का उपयोग कर सकते हैं उपयोगकर्ता द्वारा परिभाषित डेटा प्रकार सहित, वर्तमान डेटाबेस में उपयोगकर्ता द्वारा बनाए गए ऑब्जेक्ट का नाम बदलने के लिए संग्रहीत कार्यविधि।
सिंटैक्स
वाक्य रचना इस प्रकार है:
EXEC sp_rename 'old_datatype', 'new_datatype', 'USERDATATYPE';
जहां old_datatype
उपयोगकर्ता परिभाषित डेटा प्रकार का नाम है जिसका आप नाम बदलना चाहते हैं, और new_datatype
वह नया नाम है जिसे आप देना चाहते हैं।
उदाहरण
आइए हमारे डेटाबेस में वर्तमान उपयोगकर्ता परिभाषित डेटा प्रकारों पर एक नज़र डालें।
SELECT
name,
max_length,
[precision],
scale,
is_user_defined
FROM sys.types
WHERE is_user_defined = 1;
परिणाम:
+----------+--------------+-------------+---------+-------------------+ | name | max_length | precision | scale | is_user_defined | |----------+--------------+-------------+---------+-------------------| | clientid | 8 | 0 | 0 | 1 | +----------+--------------+-------------+---------+-------------------+
हमारे पास एक उपयोगकर्ता परिभाषित डेटा प्रकार है जिसे clientid
. कहा जाता है ।
आइए इसका नाम बदलकर clientcode
कर दें ।
EXEC sp_rename 'clientid', 'clientcode', 'USERDATATYPE';
चल रहा है जो इसका नाम बदलकर clientcode
कर देता है . आप निम्न संदेश देख सकते हैं:
Caution: Changing any part of an object name could break scripts and stored procedures.
यह मूल रूप से हमें यह सूचित करता है कि यदि हमारे पास संग्रहीत कार्यविधियों की कोई स्क्रिप्ट है जो हमारे नामित ऑब्जेक्ट को संदर्भित करती है, तो वे टूट जाएंगी, और हमें उन्हें अपडेट करने की आवश्यकता होगी।
आपको आश्चर्य हो सकता है कि क्या इसका मतलब यह है कि इस डेटा प्रकार का उपयोग करने वाले किसी भी मौजूदा कॉलम को अब तोड़ा जाएगा?
सौभाग्य से, मौजूदा कॉलम ठीक होना चाहिए।
उपयोगकर्ता परिभाषित डेटा प्रकार का नाम बदलने के बाद, उस डेटा प्रकार का उपयोग करने वाला कोई भी कॉलम उस डेटा प्रकार का उसके नए नाम के साथ उपयोग करना जारी रखेगा। डेटा प्रकार (जैसे लंबाई, आदि) के किसी भी प्रतिबंध को लागू किया जाना जारी है।
आइए अब उपयोगकर्ता परिभाषित डेटा प्रकारों की हमारी सूची को फिर से देखें:
SELECT
name,
max_length,
[precision],
scale,
is_user_defined
FROM sys.types
WHERE is_user_defined = 1;
परिणाम:
+------------+--------------+-------------+---------+-------------------+ | name | max_length | precision | scale | is_user_defined | |------------+--------------+-------------+---------+-------------------| | clientcode | 8 | 0 | 0 | 1 | +------------+--------------+-------------+---------+-------------------+
जैसा कि अपेक्षित था, निर्दिष्ट के अनुसार इसका नाम बदल दिया गया है।