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

SQL सर्वर में किसी तालिका के लिए सभी जाँच और विदेशी कुंजी बाधाओं को कैसे अक्षम करें (T-SQL उदाहरण)

आप सभी CHECK . को अक्षम करने के लिए नीचे दिए गए कोड का उपयोग कर सकते हैं और SQL सर्वर में एक विशिष्ट तालिका के लिए विदेशी कुंजी बाधाएं।

बस TableName replace को बदलें लागू तालिका के नाम के साथ।

ALTER TABLE TableName NOCHECK CONSTRAINT ALL

नीचे एक उदाहरण दिया गया है जहां मैं यह करता हूं और फिर परिणाम की जांच करता हूं।

उदाहरण 1 - बाधाओं की समीक्षा करें

सबसे पहले, मैं वर्तमान CHECK . पर एक नज़र डालूँगा और डेटाबेस में विदेशी कुंजी बाधाएं, यह देखने के लिए कि वे सक्षम या अक्षम हैं या नहीं।

SELECT
  OBJECT_NAME(parent_object_id) AS 'Table',
  name AS 'Constraint',
  is_disabled, 
  is_not_trusted
FROM sys.foreign_keys
UNION
SELECT 
  OBJECT_NAME(parent_object_id),
  name,
  is_disabled, 
  is_not_trusted
FROM sys.check_constraints;

परिणाम:

+----------------+-----------------+---------------+------------------+
| Table          | Constraint      | is_disabled   | is_not_trusted   |
|----------------+-----------------+---------------+------------------|
| ConstraintTest | chkPrice        | 0             | 0                |
| ConstraintTest | chkValidEndDate | 0             | 0                |
| ConstraintTest | chkTeamSize     | 0             | 0                |
| Occupation     | chkJobTitle     | 0             | 0                |
+----------------+-----------------+---------------+------------------+

तो वर्तमान में चार हैं CHECK डेटाबेस में बाधाएं, जिनमें से तीन ConstraintTest . के लिए हैं टेबल।

हम देख सकते हैं कि सभी बाधाएं सक्षम हैं क्योंकि is_disabled 0 . पर सेट है ।

उदाहरण 2 - बाधाओं को अक्षम करें

अब मैं ConstraintTest . के लिए सभी बाधाओं को अक्षम कर दूंगा तालिका:

ALTER TABLE ConstraintTest 
NOCHECK CONSTRAINT ALL;

उदाहरण 3 - परिणाम जांचें

अब मैं परिणाम देखने के लिए पहले उदाहरण से वही प्रश्न चलाता हूं।

SELECT
  OBJECT_NAME(parent_object_id) AS 'Table',
  name AS 'Constraint',
  is_disabled, 
  is_not_trusted
FROM sys.foreign_keys
UNION
SELECT 
  OBJECT_NAME(parent_object_id),
  name,
  is_disabled, 
  is_not_trusted
FROM sys.check_constraints;

परिणाम:

+----------------+-----------------+---------------+------------------+
| Table          | Constraint      | is_disabled   | is_not_trusted   |
|----------------+-----------------+---------------+------------------|
| ConstraintTest | chkPrice        | 1             | 1                |
| ConstraintTest | chkValidEndDate | 1             | 1                |
| ConstraintTest | chkTeamSize     | 1             | 1                |
| Occupation     | chkJobTitle     | 0             | 0                |
+----------------+-----------------+---------------+------------------+

जैसा कि अपेक्षित था, ConstraintTest . के लिए सभी तीन बाधाएं तालिका अक्षम कर दी गई है (क्योंकि is_disabled कॉलम 1 . पर सेट है उन बाधाओं के लिए)।

ध्यान दें कि is_not_trusted कॉलम 1 . पर भी सेट है . यह एक महत्वपूर्ण विचार है, खासकर यदि आप अपनी किसी भी अक्षम बाधा को फिर से सक्षम करना चाहते हैं।

अपनी बाधाओं को पुन:सक्षम करते समय विश्वास को पुनर्स्थापित करने के तरीके के बारे में जानकारी के लिए SQL सर्वर में चेक बाधा को सक्षम करते समय आपको NOCHECK के बारे में क्या पता होना चाहिए देखें। उस लेख की जानकारी विदेशी कुंजियों पर भी लागू होती है।

प्रतिबंधों को अलग-अलग अक्षम करें

यदि आप तालिका में सभी बाधाओं को अक्षम नहीं करना चाहते हैं, तो आप उन्हें अलग-अलग अक्षम कर सकते हैं। देखें कि SQL सर्वर में CHECK बाधा को कैसे अक्षम करें और SQL सर्वर में विदेशी कुंजी को कैसे अक्षम करें।

प्रतिबंधों को पुन:सक्षम करें

यदि आपको किसी तालिका के लिए सभी बाधाओं को पुन:सक्षम करने की आवश्यकता है, तो तालिका के लिए सभी जांच और विदेशी कुंजी बाधाओं को कैसे सक्षम करें देखें।

यदि आपको उन्हें व्यक्तिगत रूप से पुन:सक्षम करने की आवश्यकता है, तो देखें कि SQL सर्वर में एक CHECK बाधा कैसे सक्षम करें और SQL सर्वर में एक विदेशी कुंजी कैसे सक्षम करें।


  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. SQL सर्वर में उपयोगकर्ता-परिभाषित कार्यों का परिचय

  3. इकाई फ्रेमवर्क 6 - समय संबंधी प्रश्न

  4. डेटाबेस मेल प्रोफाइल (SSMS) के भीतर किसी खाते की प्राथमिकता बदलें

  5. SQL सर्वर इंडेक्स भ्रष्टाचार को सुधारने के लिए नि:शुल्क तरीके