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

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

यदि आपको सभी विदेशी कुंजी बाधाओं की सूची वापस करने की आवश्यकता है जो 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                |
+--------------------------------+---------------+------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं तालिका में डुप्लिकेट पंक्तियों को कैसे हटा सकता हूं

  2. गतिशील रूप से कॉलम बनाएं sql

  3. SQL सर्वर क्या है? (परिभाषा, संस्करण, संस्करण)

  4. टी-एसक्यूएल:मैक्स (अन्य कॉलम) के आधार पर कॉलम का चयन करना

  5. कैसे OBJECTPROPERTYEX () SQL सर्वर में काम करता है