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