डेटाबेस के संदर्भ में, एक विदेशी कुंजी एक स्तंभ है जो दो तालिकाओं के बीच संबंध में किसी अन्य तालिका के प्राथमिक कुंजी फ़ील्ड से जुड़ा होता है।
एक विदेशी कुंजी एक प्रकार की बाधा है, और इसलिए यदि आप SQL सर्वर में एक विदेशी कुंजी बनाना चाहते हैं, तो आपको एक विदेशी कुंजी बाधा बनाने की आवश्यकता होगी।
यह आलेख दर्शाता है कि ट्रांजैक्ट-एसक्यूएल का उपयोग करके SQL सर्वर में एक विदेशी कुंजी बाधा कैसे बनाई जाए।
उदाहरण
इसे प्रदर्शित करने का सबसे आसान तरीका एक उदाहरण है। इस उदाहरण में, हम ALTER TABLE
का उपयोग करके एक विदेशी कुंजी बाधा बनाने के लिए T-SQL का उपयोग करते हैं कथन:
USE Music; ALTER TABLE Albums ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE CASCADE ON UPDATE CASCADE ; GO
यह दो तालिकाओं के बीच संबंध बनाता है (Albums
तालिका और Artists)
टेबल)। हम Albums
. पर एक विदेशी कुंजी बाधा बनाकर ऐसा करते हैं टेबल। हम निर्दिष्ट करते हैं कि Albums.ArtistId
कॉलम Artists.ArtistId
. के लिए एक विदेशी कुंजी है स्तंभ।
यह स्पष्ट रूप से मानता है कि दो टेबल मौजूद हैं। अगर उन्होंने ऐसा नहीं किया, तो हमें एक त्रुटि मिलेगी।
हम GO
. का भी उपयोग करते हैं जो वास्तव में टी-एसक्यूएल का हिस्सा नहीं है। इसे विभिन्न उपयोगिताओं द्वारा टी-एसक्यूएल स्टेटमेंट के एक बैच के अंत का संकेत देने के लिए पहचाना जाता है।
परिणाम जांचें
आप निम्न स्क्रिप्ट चलाकर परिणाम की जांच कर सकते हैं:
USE Music; SELECT name, type_desc, delete_referential_action_desc, update_referential_action_desc FROM sys.foreign_keys; GO
यह Music
. में विदेशी कुंजियों को सूचीबद्ध करता है डेटाबेस। उपयुक्त के लिए डेटाबेस का नाम बदलें।
यदि आपके डेटाबेस में बहुत अधिक विदेशी कुंजियाँ हैं, तो आप इसे WHERE
. के साथ हमेशा सीमित कर सकते हैं उस विशिष्ट विदेशी कुंजी का खंड जिसमें आप रुचि रखते हैं। आप वाइल्डकार्ड वर्ण (*
) का भी उपयोग कर सकते हैं ) यदि आपको सभी कॉलम वापस करने की आवश्यकता है।