समस्या:
आप 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 )।