आप sp_rename
. का उपयोग कर सकते हैं एक CHECK
का नाम बदलने के लिए सिस्टम संग्रहीत कार्यविधि SQL सर्वर में बाधा।
इस संग्रहीत कार्यविधि का उद्देश्य आपको वर्तमान डेटाबेस में उपयोगकर्ता द्वारा बनाए गए ऑब्जेक्ट का नाम बदलने की अनुमति देना है। तो आप इसका उपयोग अन्य ऑब्जेक्ट्स जैसे टेबल, कॉलम, उपनाम डेटा प्रकार इत्यादि का नाम बदलने के लिए भी कर सकते हैं।
सिंटैक्स
sp_rename
. का सिंटैक्स इस तरह जाता है:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ]
तो आपका कोड कुछ इस तरह हो सकता है:
sp_rename 'schema_name.old_constraint_name', 'new_constraint_name';
ध्यान दें कि Microsoft दस्तावेज़ कहता है कि बाधाओं का नाम बदलने पर आपको मौजूदा नाम को स्कीमा नाम के साथ योग्य बनाना होगा।
निम्न उदाहरण दर्शाता है कि CHECK
का नाम कैसे बदला जाए बाधा।
उदाहरण 1 - नाम बदलने के लिए एक बाधा चुनें
सबसे पहले, आइए CHECK
की सूची बनाएं डेटाबेस में बाधाएं हैं, इसलिए हम तय कर सकते हैं कि किसका नाम बदलना है।
SELECT name, SCHEMA_NAME(schema_id) AS 'Schema', OBJECT_NAME(parent_object_id) AS 'Table', definition FROM sys.check_constraints;
परिणाम:
+-----------------+----------+----------------+----------------------------------------+ | name | Schema | Table | definition | |-----------------+----------+----------------+----------------------------------------| | chkPrice | dbo | ConstraintTest | ([Price]>(0)) | | chkValidEndDate | dbo | ConstraintTest | ([EndDate]>=[StartDate]) | | chkTeamSize | dbo | ConstraintTest | ([TeamSize]>=(5) AND [TeamSize]<=(20)) | | chkJobTitle | dbo | Occupation | ([JobTitle]<>'Digital Nomad') | +-----------------+----------+----------------+----------------------------------------+
आइए दूसरी बाधा का नाम बदलें ( chkValidEndDate )।
आइए मान्य को हटा दें भाग ताकि यह केवल chkEndDate . बन जाए ।
उदाहरण 2 - प्रतिबंध का नाम बदलें
बाधा का नाम बदलने के लिए इसे चलाएँ।
sp_rename 'dbo.chkValidEndDate', 'chkEndDate';
तो पुराना (मौजूदा) नाम पहले आता है, उसके बाद नया नाम आता है।
तो अब अगर मैं सभी CHECK
. का चयन करता हूं बाधाएँ फिर से, मुझे निम्नलिखित परिणाम मिलते हैं।
SELECT name, SCHEMA_NAME(schema_id) AS 'Schema', OBJECT_NAME(parent_object_id) AS 'Table', definition FROM sys.check_constraints;
परिणाम:
+-------------+----------+----------------+----------------------------------------+ | name | Schema | Table | definition | |-------------+----------+----------------+----------------------------------------| | chkPrice | dbo | ConstraintTest | ([Price]>(0)) | | chkEndDate | dbo | ConstraintTest | ([EndDate]>=[StartDate]) | | chkTeamSize | dbo | ConstraintTest | ([TeamSize]>=(5) AND [TeamSize]<=(20)) | | chkJobTitle | dbo | Occupation | ([JobTitle]<>'Digital Nomad') | +-------------+----------+----------------+----------------------------------------+
बाधा का नाम बदल दिया गया है।
जैसा कि बताया गया है, sp_rename
संग्रहीत कार्यविधि केवल CHECK
तक सीमित नहीं है प्रतिबंध। आप एक विदेशी कुंजी बाधा, एक टेबल, कॉलम, उपनाम डेटा प्रकार, या किसी अन्य उपयोगकर्ता-परिभाषित ऑब्जेक्ट का नाम बदलने के लिए बिल्कुल उसी सिंटैक्स का उपयोग कर सकते हैं।
हालाँकि, Microsoft अनुशंसा करता है कि संग्रहीत कार्यविधियाँ, ट्रिगर, उपयोगकर्ता-परिभाषित फ़ंक्शन या दृश्य का नाम न बदलें। ऐसे मामलों में, Microsoft अनुशंसा करता है कि आप इसके बजाय वस्तु को छोड़ दें और इसे नए नाम के साथ फिर से बनाएँ।