यदि आपको सभी विदेशी कुंजी बाधाओं की सूची वापस करने की आवश्यकता है जो SQL सर्वर डेटाबेस में अक्षम कर दी गई हैं, तो आप नीचे टी-एसक्यूएल कोड चला सकते हैं।
उदाहरण 1 - केवल अक्षम विदेशी कुंजी प्रतिबंध लौटाएं
यह क्वेरी वर्तमान डेटाबेस में केवल अक्षम विदेशी कुंजी बाधाओं को लौटाती है। इस उदाहरण के लिए, मैं केवल बाधा का नाम, उसकी अक्षम और विश्वसनीय स्थिति के साथ लौटाता हूं।
SELECT name AS 'Constraint', is_disabled, is_not_trusted FROM sys.foreign_keys WHERE is_disabled = 1;
परिणाम:
+------------------------+---------------+------------------+ | Constraint | is_disabled | is_not_trusted | |------------------------+---------------+------------------| | FK_BandMember_Band | 1 | 1 | | FK_BandMember_Musician | 1 | 1 | +------------------------+---------------+------------------+
यह sys.foreign_keys
. से पूछताछ करता है सिस्टम दृश्य। हम जानते हैं कि यह केवल अक्षम बाधाओं को लौटाता है क्योंकि WHERE
क्लॉज केवल उन पंक्तियों को निर्दिष्ट करता है जिनमें is_disabled
. है कॉलम 1
. पर सेट है ।
अगर आप केवल सक्षम return लौटना चाहते हैं विदेशी कुंजी बाधाएं, बस 1
बदलें करने के लिए 0
।
ध्यान दें कि is_not_trusted
ध्वज को 1
. पर भी सेट किया गया है इन विकलांग बाधाओं के लिए। ऐसा इसलिए है क्योंकि सिस्टम इस बात की गारंटी नहीं दे सकता कि बाधा ने सभी डेटा की जाँच कर ली है। यह समझ में आता है, क्योंकि एक बाधा को अक्षम करने से अमान्य डेटा की जांच किए बिना डेटाबेस में प्रवेश करने की संभावना खुल जाती है।
यहाँ फिर से वही प्रश्न है, लेकिन इस बार मैं प्रत्येक बाधा के लिए तालिका और संदर्भित तालिका शामिल करता हूँ:
SELECT name AS 'Constraint', OBJECT_NAME(parent_object_id) AS 'Table', OBJECT_NAME(referenced_object_id) AS 'Referenced Table', is_disabled, is_not_trusted FROM sys.foreign_keys WHERE is_disabled = 1;
परिणाम:
+------------------------+------------+--------------------+---------------+------------------+ | Constraint | Table | Referenced Table | is_disabled | is_not_trusted | |------------------------+------------+--------------------+---------------+------------------| | FK_BandMember_Band | BandMember | Band | 1 | 1 | | FK_BandMember_Musician | BandMember | Musician | 1 | 1 | +------------------------+------------+--------------------+---------------+------------------+
उदाहरण 2 - सभी विदेशी कुंजी प्रतिबंध लौटाएं
निम्न क्वेरी सभी लौटाती है वर्तमान डेटाबेस के लिए विदेशी कुंजी बाधाएं (न केवल अक्षम वाले):
SELECT name AS 'Constraint', is_disabled, is_not_trusted FROM sys.foreign_keys;
परिणाम:
+--------------------------------+---------------+------------------+ | Constraint | is_disabled | is_not_trusted | |--------------------------------+---------------+------------------| | FK_BandMember_Band | 1 | 1 | | FK_BandMember_Musician | 1 | 1 | | FK_MembershipPeriod_BandMember | 0 | 0 | +--------------------------------+---------------+------------------+