नीचे पाँच विधियाँ दी गई हैं जिनका उपयोग आप शीघ्रता से यह निर्धारित करने के लिए कर सकते हैं कि SQL सर्वर में वर्तमान डेटाबेस में कितनी उपयोगकर्ता-परिभाषित तालिकाएँ हैं।
सभी पांच विकल्प COUNT()
. का उपयोग करते हैं गिनती प्राप्त करने के लिए कार्य करें। जाहिर है, आप इसे तारक से बदल सकते हैं (*
), या सभी उपयोगकर्ता-परिभाषित तालिकाओं की सूची वापस करने के लिए स्तंभों के नाम।
विकल्प 1 - sys.tables
ऐसा करने का सबसे स्पष्ट तरीका sys.tables
. को क्वेरी करना है सिस्टम कैटलॉग दृश्य। इस दृश्य का पूरा उद्देश्य प्रत्येक उपयोगकर्ता तालिका के लिए एक पंक्ति लौटाना है, इसलिए हमें ठीक यही चाहिए।
USE WideWorldImportersDW; SELECT COUNT(*) AS [Number of User Tables] FROM sys.tables;
परिणाम:
+-------------------------+ | Number of User Tables | |-------------------------| | 29 | +-------------------------+
इस मामले में मैं WideWorldImportersDW
. से उपयोगकर्ता तालिकाओं की संख्या लौटाता हूं डेटाबेस।
अगर मैं दूसरे डेटाबेस पर स्विच करता हूं, तो मुझे एक अलग परिणाम मिलता है:
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.tables;
परिणाम:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
जैसा कि उल्लेख किया गया है, आप केवल COUNT(*)
. को प्रतिस्थापित करके तालिकाओं को सूचीबद्ध कर सकते हैं तारक वाली रेखा (*
) या कॉलम के नाम:
USE Music; SELECT name FROM sys.tables;
परिणाम:
+---------+ | name | |---------| | Artists | | Genres | | Albums | | Country | +---------+
विकल्प 2 - sys.objects को प्रकार के अनुसार फ़िल्टर करें
एक अन्य विकल्प sys.objects
. को क्वेरी करना है कैटलॉग दृश्य।
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE type = 'U';
परिणाम:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
इस मामले में आपको type = 'U'
. द्वारा फ़िल्टर करना होगा (U
"उपयोगकर्ता तालिका" के लिए है)।
विकल्प 3 - sys.objects को "विवरण टाइप करें" द्वारा फ़िल्टर करें
sys.objects
. को क्वेरी करने का दूसरा तरीका दृश्य type_desc
. द्वारा परिणामों को फ़िल्टर करना है कॉलम।
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE type_desc = 'USER_TABLE';
परिणाम:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
विकल्प 4 - OBJECTPROPERTY() फ़ंक्शन का उपयोग करके sys.objects को फ़िल्टर करें
आप OBJECTPROPERTY()
. का भी उपयोग कर सकते हैं आपके WHERE
. में काम करता है खंड।
यह फ़ंक्शन दो तर्क स्वीकार करता है:एक ऑब्जेक्ट आईडी और एक प्रॉपर्टी। ऑब्जेक्ट आईडी टेबल आईडी हो सकती है और प्रॉपर्टी IsUserTable
. हो सकती है , जो निर्धारित करता है कि वस्तु एक प्रणाली तालिका है या नहीं।
इसलिए, आप कुछ ऐसा कर सकते हैं:
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE OBJECTPROPERTY(object_id, 'IsUserTable') = 1;
परिणाम:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
विकल्प 5 - INFORMATION_SCHEMA.TABLES
यह विकल्प INFORMATION_SCHEMA.TABLES
. से पूछताछ करता है सूचना स्कीमा दृश्य। यह दृश्य दृश्य और तालिका दोनों लौटाता है, इसलिए आपको TABLE_TYPE = 'BASE TABLE'
द्वारा फ़िल्टर करने की आवश्यकता है सिर्फ टेबल वापस करने के लिए।
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';
परिणाम:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
यदि आपको सिस्टम तालिकाओं की संख्या पता करने की आवश्यकता है, तो SQL सर्वर में सिस्टम तालिकाओं की संख्या की गणना करने के 3 तरीके देखें।