यहाँ एक लेख है जो SQL सर्वर में वर्तमान डेटाबेस में कितनी सिस्टम तालिकाएँ हैं, यह निर्धारित करने के लिए तीन तरीके प्रस्तुत करता है।
सभी तीन विकल्प COUNT()
. का उपयोग करते हैं sys.objects
. को क्वेरी करते समय कार्य करें सिस्टम कैटलॉग दृश्य। वे सभी एक ही आउटपुट में परिणत होते हैं, इसलिए आपको वास्तव में पहले विकल्प से आगे जाने की आवश्यकता नहीं है। लेकिन मैं उन्हें वैसे भी सूचीबद्ध करूंगा।
विकल्प 1 - प्रकार के अनुसार
ऐसा करने का सबसे संक्षिप्त तरीका type
. द्वारा फ़िल्टर करना है कॉलम।
USE Music; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE type = 'S';
परिणाम:
+---------------------------+ | Number of System Tables | |---------------------------| | 72 | +---------------------------+
यहाँ, मैं एक type
. द्वारा फ़िल्टर करता हूँ का S
. S
"सिस्टम बेस टेबल" के लिए खड़ा है।
अगर मैं मास्टर . पर स्विच करता हूं डेटाबेस, मुझे एक अलग परिणाम मिलता है:
USE Master; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE type = 'S';
परिणाम:
+---------------------------+ | Number of System Tables | |---------------------------| | 79 | +---------------------------+
ऐसा इसलिए है क्योंकि मास्टर डेटाबेस में कुछ सिस्टम टेबल होते हैं जो अन्य डेटाबेस में नहीं होते हैं।
नाम प्राप्त करने के लिए हम निम्नलिखित क्वेरी चला सकते हैं:
USE master; SELECT name FROM sys.objects WHERE type = 'S' AND name NOT IN ( SELECT name FROM model.sys.objects WHERE type = 'S' );
परिणाम:
+--------------------------+ | name | |--------------------------| | sysextendedrecoveryforks | | syslogshippers | | sysmatrixageforget | | sysmatrixages | | sysmatrixbricks | | sysmatrixconfig | | sysmatrixmanagers | +--------------------------+
इस मामले में मैं मास्टर . की तुलना करता हूं मॉडल . के लिए डेटाबेस डेटाबेस। आप model
. की अदला-बदली करके स्पष्ट रूप से एक अलग डेटाबेस निर्दिष्ट कर सकते हैं अन्य डेटाबेस के नाम के साथ।
विकल्प 2 - "विवरण टाइप करें" द्वारा
दूसरा विकल्प type_desc
. द्वारा फ़िल्टर करना है type
. के बजाय कॉलम कॉलम।
USE Music; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE type_desc = 'SYSTEM_TABLE';
परिणाम:
+---------------------------+ | Number of System Tables | |---------------------------| | 72 | +---------------------------+
विकल्प 3 - OBJECTPROPERTY() द्वारा
यदि किसी कारण से आपको पिछले दो विकल्प अनुपयुक्त लगते हैं, तो आप OBJECTPROPERTY()
का उपयोग करके देख सकते हैं। समारोह।
यह फ़ंक्शन दो तर्क स्वीकार करता है:एक ऑब्जेक्ट आईडी और एक प्रॉपर्टी। ऑब्जेक्ट आईडी टेबल आईडी हो सकती है और प्रॉपर्टी IsSystemTable
. हो सकती है , जो निर्धारित करता है कि वस्तु एक प्रणाली तालिका है या नहीं।
इसलिए, आप कुछ ऐसा कर सकते हैं:
USE Music; SELECT COUNT(*) AS [Number of System Tables] FROM sys.objects WHERE OBJECTPROPERTY(object_id, 'IsSystemTable') = 1;
परिणाम:
+---------------------------+ | Number of System Tables | |---------------------------| | 72 | +---------------------------+
तालिकाओं की सूची बनाएं
यदि आप तालिकाओं को केवल गिनने के बजाय सूचीबद्ध करना चाहते हैं तो आप तीन विकल्पों को संशोधित कर सकते हैं। ऐसा करने के लिए, बस COUNT(*) AS [Number of User Tables]
. को बदलें *
के साथ . वैकल्पिक रूप से, आप उन स्तंभों को स्पष्ट रूप से नाम दे सकते हैं जिन्हें आप लौटाना चाहते हैं।
उपयोगकर्ता-निर्धारित तालिकाओं की गणना करें
यदि आपको उपयोगकर्ता . की संख्या पता करने की आवश्यकता है तालिकाएँ, SQL सर्वर में उपयोगकर्ता-निर्धारित तालिकाओं की संख्या की गणना करने के 5 तरीके देखें।