Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

T-SQL का उपयोग करके SQL सर्वर में एक विदेशी कुंजी का नाम बदलें

आप sp_rename . का उपयोग कर सकते हैं SQL सर्वर में एक विदेशी कुंजी बाधा का नाम बदलने के लिए सिस्टम संग्रहीत प्रक्रिया।

इस संग्रहीत कार्यविधि का उद्देश्य आपको वर्तमान डेटाबेस में उपयोगकर्ता द्वारा बनाए गए ऑब्जेक्ट का नाम बदलने की अनुमति देना है, ताकि आप अन्य ऑब्जेक्ट जैसे टेबल, कॉलम, उपनाम डेटा प्रकार आदि का भी नाम बदल सकें।

सिंटैक्स

sp_rename . का सिंटैक्स इस तरह जाता है:

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'   
    [ , [ @objtype = ] 'object_type' ]

तो आपका कोड कुछ इस तरह हो सकता है:

sp_rename 'schema_name.old_fk_name', 'new_fk_name';

ध्यान दें कि Microsoft दस्तावेज़ीकरण में कहा गया है कि बाधाओं (जैसे विदेशी कुंजी) का नाम बदलने पर आपको मौजूदा नाम को स्कीमा नाम के साथ योग्य बनाना होगा।

यदि आप स्कीमा को छोड़ देते हैं तो आपको त्रुटि मिल सकती है या नहीं भी हो सकती है, लेकिन इस पर Microsoft की सलाह का पालन करना शायद एक अच्छा विचार है।

निम्नलिखित उदाहरण मुझे एक विदेशी कुंजी का नाम बदलते हुए दिखाता है।

उदाहरण 1 - सभी विदेशी कुंजियों की समीक्षा करें

सबसे पहले, मैं डेटाबेस में विदेशी कुंजियों पर एक नज़र डालूंगा (ताकि मैं तय कर सकूं कि किसका नाम बदलना है)।

SELECT
  name AS 'Foreign Key',
  SCHEMA_NAME(schema_id) AS 'Schema',
  OBJECT_NAME(parent_object_id) AS 'Table',
  OBJECT_NAME(referenced_object_id) AS 'Referenced Table'
FROM sys.foreign_keys;

परिणाम:

+--------------------------------+----------+---------+--------------------+
| Foreign Key                    | Schema   | Table   | Referenced Table   |
|--------------------------------+----------+---------+--------------------|
| FK_Albums_Artists              | dbo      | Albums  | Artists            |
| FK_Albums_Genres               | dbo      | Albums  | Genres             |
| FK__Artists__Country__4AB81AF0 | dbo      | Artists | Country            |
+--------------------------------+----------+---------+--------------------+

तीसरी विदेशी कुंजी ( FK__Artists__Country__4AB81AF0 ) प्रणाली द्वारा नामित किया गया है। सिस्टम ने इसका नाम इसलिए रखा क्योंकि जब मैंने इसे बनाया था तो मैं एक नाम देना भूल गया था।

आइए इस विदेशी कुंजी को अधिक संक्षिप्त नाम दें।

उदाहरण 2 - विदेशी कुंजी का नाम बदलें

यहाँ वह बिट है जो विदेशी कुंजी का नाम बदल देता है।

sp_rename 'dbo.FK__Artists__Country__4AB81AF0', 'FK_Artists_Country';

जैसा कि उल्लेख किया गया है, पुराना (मौजूदा) नाम पहले आता है, फिर नया नाम।

तो अब अगर मैं सभी विदेशी कुंजियों का चयन करता हूं, तो मुझे निम्न परिणाम मिलते हैं।

SELECT
  name AS 'Foreign Key',
  SCHEMA_NAME(schema_id) AS 'Schema',
  OBJECT_NAME(parent_object_id) AS 'Table',
  OBJECT_NAME(referenced_object_id) AS 'Referenced Table'
FROM sys.foreign_keys;

परिणाम:

+--------------------+----------+---------+--------------------+
| Foreign Key        | Schema   | Table   | Referenced Table   |
|--------------------+----------+---------+--------------------|
| FK_Albums_Artists  | dbo      | Albums  | Artists            |
| FK_Albums_Genres   | dbo      | Albums  | Genres             |
| FK_Artists_Country | dbo      | Artists | Country            |
+--------------------+----------+---------+--------------------+

मैंने सफलतापूर्वक विदेशी कुंजी का नाम बदल दिया है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में CAST () कैसे काम करता है

  2. STRING_AGG में DISTINCT मान उत्पन्न करें

  3. मैं SQL Server 2008 R2 में CONCAT फ़ंक्शन का उपयोग कैसे करूं?

  4. SQL ऑपरेशंस स्टूडियो का उपयोग करके मैक पर SQL सर्वर डेटाबेस को कैसे पुनर्स्थापित करें

  5. आप टेबल-वैल्यू फ़ंक्शन का उपयोग कब करेंगे?