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

एसक्यूएल सर्वर (टी-एसक्यूएल उदाहरण) में सभी अविश्वसनीय जांच बाधाओं को कैसे वापस करें

यदि आपको सभी अविश्वसनीय 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 के बारे में क्या पता होना चाहिए।


  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 तालिकाओं के लिए एक शुरुआती मार्गदर्शिका

  2. एक विशाल तालिका में स्तंभ प्रकार बदलें

  3. SQL सर्वर केस-संवेदनशीलता की जाँच करता है?

  4. क्या आपको SQL सर्वर में MONEY या DECIMAL(x,y) डेटाटाइप चुनना चाहिए?

  5. डेटाबेस तालिका में सॉर्ट ऑर्डर कॉलम का उपयोग करना