समस्या:
आप SQL सर्वर में किसी तालिका में बाधाओं के नाम खोजना चाहते हैं।
उदाहरण:
हम तालिका में बाधाओं के नाम प्रदर्शित करना चाहते हैं student
।
समाधान:
SELECT TABLE_NAME, CONSTRAINT_TYPE,CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=’student’;
ये रहा परिणाम:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
विद्यार्थी | प्राथमिक कुंजी | PK__student__3213E83F357C7D1D |
विद्यार्थी | अद्वितीय | UQ__student__24E2EDD2AC2A7D87 |
विद्यार्थी | जांच करें | CK__student__age__4E88ABD4 |
विद्यार्थी | विदेशी कुंजी | FK__student__country__4F7CD00D |
चर्चा:
दृश्य का उपयोग करें table_constraints
information_schema
स्कीमा। कॉलम table_name
आपको उस तालिका का नाम देता है जिसमें बाधा परिभाषित की गई है, और कॉलम constraint_name
बाधा का नाम शामिल है। कॉलम constraint_type
बाधा के प्रकार को इंगित करता है:PRIMARY KEY
प्राथमिक कुंजी प्रकार के लिए, FOREIGN KEY
विदेशी कुंजी प्रकार के लिए, UNIQUE
अद्वितीय मानों के लिए, और CHECK
बाधा जांच के लिए।
उदाहरण के लिए, student
तालिका में बाधा नाम है PK_student_3213E83F357C7D1D
. constraint_type
कॉलम आपको प्रत्येक बाधा के प्रकार के बारे में जानकारी देता है; प्राथमिक कुंजी के लिए, यह PRIMARY KEY
है . table_name
इस दृश्य में कॉलम इंगित करता है कि किस तालिका में यह बाधा है।
हालांकि, अगर आप DEFAULT
. का चयन करना चाहते हैं डेटाबेस से बाधा, नीचे इस क्वेरी का उपयोग करें।
SELECT c.name, c.definition FROM sys.default_constraints c JOIN sys.objects o ON o.object_id = c.parent_object_id WHERE o.name ='student';
ये रहा परिणाम:
नाम | परिभाषा |
---|---|
DF__student__name__4D94879B | ("अज्ञात") |
DEFAULT
. का नाम बाधा स्तंभ नाम में संग्रहीत है, लेकिन मान स्तंभ में है definition
. विचारों में शामिल होना sys.default_constraint
s और sys.objects
हमें दी गई तालिका के लिए केवल डेटा का चयन करने की अनुमति देता है (हमारे उदाहरण में, तालिका student
) WHERE क्लॉज का उपयोग करके। बाधा नाम में तालिका का नाम होता है (student
) और कॉलम का नाम (name
)।