यदि आपको सभी CHECK
. की सूची वापस करने की आवश्यकता है SQL सर्वर डेटाबेस में अक्षम की गई बाधाओं के लिए, आप नीचे T-SQL कोड चला सकते हैं।
उदाहरण 1 - केवल वापसी अक्षम चेक प्रतिबंध
यह क्वेरी केवल अक्षम CHECK
returns लौटाती है वर्तमान डेटाबेस में बाधाएं। यह बाधा नाम, उस तालिका का नाम, जिस पर इसे लागू किया गया है, और बाधा की परिभाषा देता है।
SELECT OBJECT_NAME(parent_object_id) AS 'Table', name AS 'Constraint', definition FROM sys.check_constraints WHERE is_disabled = 1;
परिणाम:
+----------------+-----------------+-------------------------------+ | Table | Constraint | definition | |----------------+-----------------+-------------------------------| | ConstraintTest | chkValidEndDate | ([EndDate]>=[StartDate]) | | Occupation | chkJobTitle | ([JobTitle]<>'Digital Nomad') | +----------------+-----------------+-------------------------------+
यह sys.check_constraints
. से पूछताछ करता है सिस्टम दृश्य। हम जानते हैं कि यह केवल अक्षम बाधाओं को लौटाता है क्योंकि WHERE
क्लॉज केवल उन पंक्तियों को निर्दिष्ट करता है जिनमें is_disabled
. है कॉलम 1
. पर सेट है ।
अगर आप सभी सक्षम को वापस करना चाहते हैं CHECK
बाधाओं, बस 1
को बदलें करने के लिए 0
।
उदाहरण 2 - सभी जांच बाधाओं को वापस करें
निम्न क्वेरी सभी लौटाती है CHECK
वर्तमान डेटाबेस के लिए बाधाएं (न केवल अक्षम वाले)। इस बार मैं is_disabled
लौटाता हूं कॉलम यह प्रदर्शित करने के लिए कि पिछली क्वेरी को इसका मूल्य कहां से मिला:
SELECT OBJECT_NAME(parent_object_id) AS 'Table', name AS 'Constraint', is_disabled, is_not_trusted FROM sys.check_constraints;
परिणाम:
+----------------+-----------------+---------------+------------------+ | Table | Constraint | is_disabled | is_not_trusted | |----------------+-----------------+---------------+------------------| | ConstraintTest | chkPrice | 0 | 0 | | ConstraintTest | chkValidEndDate | 1 | 1 | | ConstraintTest | chkTeamSize | 0 | 0 | | Occupation | chkJobTitle | 1 | 1 | +----------------+-----------------+---------------+------------------+
मैंने is_not_trusted
. भी शामिल किया है इस क्वेरी में कॉलम। इस मूल्य के प्रति सचेत रहना समझदारी है, क्योंकि एक बाधा फिर से सक्षम होने के बाद भी अविश्वसनीय रह सकती है। इस फ़्लैग की विस्तृत चर्चा (और उदाहरण) के लिए, SQL सर्वर में CHECK बाधा को सक्षम करते समय NOCHECK के साथ आपको क्या पता होना चाहिए देखें।