में सभी स्कीमा की एक सूची कैसे प्राप्त करूं मैं किसी दिए गए SQL सर्वर डेटाबेस में सभी स्कीमा की एक सूची पुनर्प्राप्त करना चाहता हूं। ADO.NET
स्कीमा पुनर्प्राप्ति API का उपयोग करके मुझे सभी संग्रहों की एक सूची मिलती है लेकिन 'स्कीमा' के लिए कोई संग्रह नहीं है। मैं 'Tables'
, 'Procedures'
संग्रह (और यदि आवश्यक हो तो अन्य) को पार कर सकता है और अद्वितीय स्कीमा नामों की एक सूची प्राप्त कर सकता है लेकिन क्या एक ही परिणाम प्राप्त करने का एक आसान/छोटा तरीका नहीं है?मैं एक SQL सर्वर डेटाबेस
उदाहरण: मानक 'AdventureWorks'
डेटाबेस के लिए मैं निम्नलिखित सूची प्राप्त भी चाहते हैं - dbo,HumanResources,Person,Production,Purchasing,Sales
(अन्य मानक schem नाम मैं हटा दिया है db_accessadmin
की तरह, db_datareader
आदि)
संपादित करें: मैं स्कीमा की सूची प्राप्त कर सकते हैं सिस्टम व्यू से पूछताछ करके - INFORMATION_SCHEMA.SCHEMATA
लेकिन पहली पसंद के रूप में स्कीमा एपीआई का उपयोग करना पसंद करेंगे।
मैंने इसे SQL 2000 सर्वर पर उपयोग करने का प्रयास किया, लेकिन मुझे सभी स्कीमा वापस नहीं मिला। किसी को पता है कि ऐसा क्यों होता है? – evilfish
मेरे पास परीक्षण के लिए 2000 उदाहरण नहीं है - और मैंने सोचा कि * मैं * एक वास्तविक हैंगर-ऑन था! याद रखें कि 2000 में बाद के संस्करणों की तरह वास्तविक "स्कीमा" नहीं हैं, इसलिए आप वास्तव में जो सूची सूचीबद्ध कर रहे हैं वह भूमिका है। केवल 'चयन करें * sysusers से चुनें' और देखें कि क्या आप पहचानकर्ता देख रहे हैं जिन्हें आप ढूंढ रहे हैं। – harpo
मैंने इसे पढ़ा है और चयन * जानकारी से INCHMATION_SCHEMA.SCHEMATA वास्तव में उपयोग किए जाने वाले स्रोतों का उपयोग करने का एक अच्छा विचार नहीं है। मास्टर तालिका संग्रहीत प्रक्रिया "sp_databases" निष्पादित करने के लिए एक बेहतर तरीका है। यह 2000 और 2005 दोनों (दोनों का परीक्षण) के लिए काम करता है, और मेरे मामले में हर बार सही परिणाम लौटाता है। – evilfish