SQL सर्वर में आप OBJECTPROPERTY()
. का उपयोग कर सकते हैं किसी वस्तु के प्रकार की जाँच करने के लिए कार्य करता है। अधिक विशेष रूप से, आप जांच सकते हैं कि यह एक विशिष्ट प्रकार है या नहीं।
उदाहरण के लिए, IsTable
संपत्ति आपको बताती है कि यह एक तालिका है या नहीं, IsView
संपत्ति आपको बताती है कि यह एक दृश्य है या नहीं, आदि।
यह आलेख कुछ बुनियादी उदाहरण प्रस्तुत करता है जो जांचते हैं कि कोई वस्तु एक तालिका, दृश्य, संग्रहीत कार्यविधि या तालिका-मूल्यवान फ़ंक्शन है या नहीं।
उदाहरण 1 - तालिका की जांच करें
यहां एक उदाहरण दिया गया है जो यह जांचता है कि कोई वस्तु एक तालिका है या नहीं।
USE Music; SELECT OBJECTPROPERTY(OBJECT_ID(N'dbo.Artists'), 'IsTable') AS [IsTable];
परिणाम:
+-----------+ | IsTable | |-----------| | 1 | +-----------+
यहाँ, वस्तु का नाम है Artists
और स्कीमा dbo
. है .
इस मामले में, परिणाम 1
. है , जो इंगित करता है कि वस्तु वास्तव में एक तालिका है।
उदाहरण 2 - देखने के लिए जांचें
यहां एक उदाहरण दिया गया है जो यह जांचता है कि कोई वस्तु एक दृश्य है या नहीं।
USE Music; SELECT OBJECTPROPERTY(OBJECT_ID(N'dbo.Artists'), 'IsView') AS [IsView];
परिणाम:
+----------+ | IsView | |----------| | 0 | +----------+
इस मामले में, मैं पिछले उदाहरण से उसी वस्तु की जांच कर रहा हूं, और इसलिए हम पहले से ही जानते हैं कि यह एक दृश्य नहीं है। इसलिए, परिणाम 0
. है , जो इंगित करता है कि यह एक दृश्य नहीं है।
यहाँ एक और उदाहरण है, इस बार वस्तु वास्तव में एक दृश्य है:
SELECT OBJECTPROPERTY(OBJECT_ID(N'dbo.RockAlbums'), 'IsView') AS [IsView];
परिणाम:
+----------+ | IsView | |----------| | 1 | +----------+
ध्यान दें कि मैंने USE Music;
. को हटा दिया है भाग, क्योंकि मैं पहले से ही उस डेटाबेस में हूँ। OBJECTPROPERTY()
वर्तमान डेटाबेस में केवल स्कीमा-स्कोप्ड ऑब्जेक्ट्स की जाँच करता है।
उदाहरण 3 - सशर्त विवरण
हम अवधारणा को एक कदम आगे ले जा सकते हैं, और पिछले उदाहरणों को IF
. में शामिल कर सकते हैं बयान। इस तरह हम यह पता लगाने के लिए एक ही स्टेटमेंट चला सकते हैं कि ऑब्जेक्ट किस प्रकार का है।
नीचे बुनियादी उदाहरण दिए गए हैं जो केवल ऑब्जेक्ट प्रकार को आउटपुट करते हैं।
टेबल
DECLARE @TheObject varchar(255) = 'dbo.Artists'; IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsView') AS [IsView]) = 1 PRINT 'View'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTable') AS [IsTable]) = 1 PRINT 'Table'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsProcedure') AS [IsProcedure]) = 1 PRINT 'Stored Procedure'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTableFunction') AS [IsTableFunction]) = 1 PRINT 'Table-valued Function'; ELSE PRINT 'Unknown. Maybe add more types to this statement.';
परिणाम:
Table
इस मामले में, वस्तु एक तालिका है।
यहां और उदाहरण दिए गए हैं जो समान कथन का उपयोग करते हैं, लेकिन विभिन्न ऑब्जेक्ट प्रकारों के साथ।
देखें
DECLARE @TheObject varchar(255) = 'dbo.RockAlbums'; IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsView') AS [IsView]) = 1 PRINT 'View'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTable') AS [IsTable]) = 1 PRINT 'Table'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsProcedure') AS [IsProcedure]) = 1 PRINT 'Stored Procedure'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTableFunction') AS [IsTableFunction]) = 1 PRINT 'Table-valued Function'; ELSE PRINT 'Unknown. Maybe add more types to this statement.';
परिणाम:
View
संग्रहीत प्रक्रिया
DECLARE @TheObject varchar(255) = 'dbo.uspGetAlbumsByArtist'; IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsView') AS [IsView]) = 1 PRINT 'View'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTable') AS [IsTable]) = 1 PRINT 'Table'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsProcedure') AS [IsProcedure]) = 1 PRINT 'Stored Procedure'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTableFunction') AS [IsTableFunction]) = 1 PRINT 'Table-valued Function'; ELSE PRINT 'Unknown. Maybe add more types to this statement.';
परिणाम:
Stored Procedure
टेबल-वैल्यूड फंक्शन
DECLARE @TheObject varchar(255) = 'dbo.ufn_AlbumsByGenre1'; IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsView') AS [IsView]) = 1 PRINT 'View'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTable') AS [IsTable]) = 1 PRINT 'Table'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsProcedure') AS [IsProcedure]) = 1 PRINT 'Stored Procedure'; ELSE IF (SELECT OBJECTPROPERTY(OBJECT_ID(@TheObject), 'IsTableFunction') AS [IsTableFunction]) = 1 PRINT 'Table-valued Function'; ELSE PRINT 'Unknown. Maybe add more types to this statement.';
परिणाम:
Table-valued Function
आप इसे और अधिक उपयोगी बनाने के लिए कथन में और प्रकार जोड़ सकते हैं। मैंने तर्क सूचीबद्ध किए हैं कि OBJECTPROPERTY()
इस पृष्ठ पर स्वीकार करता है। हालांकि वे सभी ऑब्जेक्ट प्रकार नहीं हैं - कई अलग-अलग गुण हैं जिनकी आप जांच कर सकते हैं।
प्रत्येक गुण के पूर्ण विवरण के लिए, Microsoft दस्तावेज़ देखें।