Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर डेटाबेस में सिस्टम तालिकाओं की संख्या की गणना करने के 3 तरीके

यहाँ एक लेख है जो 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 तरीके देखें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्पेक्ट्रल कोर के साथ सेल्सफोर्स से SQL सर्वर में डेटा कॉपी करें

  2. SQL सर्वर 2014 SP2 में केवल एक उपयोगकर्ता डेटाबेस की एक स्कीमा और आँकड़े उत्पन्न करने के लिए DBCC CLONEDATABASE का उपयोग करना

  3. SWITCHOFFSET () SQL सर्वर में उदाहरण

  4. SQL सर्वर में सम्मिलित करने का प्रयास करते समय "वर्चर मान को परिवर्तित करते समय रूपांतरण विफल" ठीक करें

  5. SQL सर्वर में पंक्ति-स्तरीय सुरक्षा का परिचय