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

SQL सर्वर INFORMATION_SCHEMA दृश्य | देखें कि क्या कोई तालिका मौजूद है

समस्या क्या है?

किसी डेटाबेस के लिए क्वेरी लिखते समय आप नए हो सकते हैं, या जो अक्सर बदलता रहता है, हो सकता है कि आप किसी विशिष्ट डेटाबेस में सभी तालिकाओं, या डेटाबेस में कॉलम को खोजने के लिए, या तालिका या कॉलम खोजने के लिए एक त्वरित जांच चलाना चाहें। मौजूद है।

यह एक समस्या क्यों है?

स्कीमा को समझना और उसमें कौन सी तालिकाएं हैं, कुशल SQL लिखने में मदद करती हैं और यह देखने के लिए कि स्कीमा नाम या कॉलम नाम सही है या नहीं, कई बार चल रहे प्रश्नों से बचने में मदद करता है।

यह ट्यूटोरियल इन समस्याओं को हल करने में मदद करेगा।

सूचना स्कीमा का उपयोग करना

डेटा स्रोत पर मेटाडेटा को क्वेरी करना किसी तालिका के मेकअप को निर्धारित करने का सबसे आसान तरीका है यदि आपको पहले से इसकी समझ नहीं है। Microsoft SQL सर्वर इस मेटाडेटा को प्राप्त करने के लिए कई विधियों में से एक के रूप में एक सूचना स्कीमा दृश्य प्रदान करता है। जैसा कि उनके समर्थन दस्तावेज में कहा गया है, "सूचना स्कीमा दृश्य SQL सर्वर मेटाडेटा का एक आंतरिक, सिस्टम तालिका-स्वतंत्र दृश्य प्रदान करते हैं। सूचना स्कीमा दृश्य अनुप्रयोगों को सही ढंग से काम करने में सक्षम बनाता है, हालांकि अंतर्निहित सिस्टम तालिकाओं में महत्वपूर्ण परिवर्तन किए गए हैं।"

डेटा स्रोत में तालिकाओं के मेकअप को निर्धारित करने में मदद करने वाली क्वेरी चलाने के लिए हम सूचना स्कीमा में कुछ दृश्यों का उपयोग करेंगे।

TABLES दिखाने के लिए और COLUMNS डेटाबेस में या TABLES find ढूंढें और COLUMNS

यह पहली क्वेरी आपके द्वारा क्वेरी किए जा रहे डेटाबेस में सभी तालिकाओं को वापस कर देगी।

SELECT
  	TABLE_NAME
FROM
  	INFORMATION_SCHEMA.TABLES

दूसरी क्वेरी आपके द्वारा क्वेरी किए जा रहे डेटाबेस के सभी स्तंभों और तालिकाओं की सूची लौटाएगी।

SELECT
  	TABLE_NAME,
COLUMN_NAME
FROM
  	INFORMATION_SCHEMA.COLUMNS

या, आप केवल COLUMNS . के लिए भी क्वेरी कर सकते हैं एक विशिष्ट तालिका से और हमारे डेटाबेस में विशिष्ट तालिका 'एल्बम' से कॉलम नाम लौटाएं।

SELECT
	COLUMN_NAME
FROM
  	INFORMATION_SCHEMA.COLUMNS
WHERE
	TABLE_NAME = 'Album'

इस अगली क्वेरी से आप पता लगा सकते हैं कि कोई TABLE है या नहीं डेटा स्रोत में जो किसी प्रकार के खोज पैरामीटर से मेल खाता है।

IF EXISTS(
SELECT
  			*
  		FROM
  			INFORMATION_SCHEMA.TABLES
  		WHERE
  			TABLE_NAME = 'Album'
			)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;

यदि हमारे डेटाबेस में टेबल 'एल्बम' मौजूद है तो क्वेरी 'मिला' शब्द वापस कर देगी।

अब इसे थोड़ा और आगे ले जाने के लिए, आप इस क्वेरी का उपयोग यह पता लगाने के लिए कर सकते हैं कि कोई COLUMN है या नहीं डेटा स्रोत में जो किसी प्रकार के खोज पैरामीटर से मेल खाता है।

IF EXISTS(
SELECT
  				*
  			FROM
  				INFORMATION_SCHEMA.COLUMNS
  			WHERE
  				COLUMN_NAME = 'Title'
				)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;

INFORMATION_SCHEMA . का उपयोग करना जब आप अपनी क्वेरी बनाते हैं तो डेटा स्रोत में क्या है, यह निर्धारित करने का एक विश्वसनीय तरीका हो सकता है।

Microsoft SQL सर्वर सिस्टम सूचना स्कीमा दृश्यों के बारे में अधिक जानकारी के लिए, कृपया उनके समर्थन दस्तावेज़ों से अधिक पढ़ें।


  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. SqlParameter तालिका नाम की अनुमति नहीं देता है - sql इंजेक्शन हमले के बिना अन्य विकल्प?

  3. SQL सर्वर में ट्रिग्राम वाइल्डकार्ड स्ट्रिंग खोज

  4. 🆕 SQL सर्वर 2022 फर्स्ट लुक - शीर्ष 5 नई सुविधाएँ (बोनस 5 सुविधाएँ)

  5. SQL सर्वर 2008 में फ़ंक्शन mysql में GREATEST के समान है?