आप OBJECTPROPERTY()
. का उपयोग कर सकते हैं यह जांचने के लिए SQL सर्वर में कार्य करता है कि कोई ऑब्जेक्ट तालिका-मूल्यवान फ़ंक्शन है या नहीं।
ऐसा करने के लिए, ऑब्जेक्ट आईडी को पहले तर्क के रूप में पास करें, और IsTableFunction
दूसरे तर्क के रूप में। फ़ंक्शन एक 1
देता है या एक 0
इस पर निर्भर करता है कि यह तालिका-मूल्यवान फ़ंक्शन है या नहीं।
1
. का वापसी मान इसका मतलब है कि यह है एक तालिका-मूल्यवान फ़ंक्शन, और 0
. का मान इसका मतलब है कि ऐसा नहीं है।
उदाहरण 1 - मूल उपयोग
प्रदर्शित करने के लिए यहां एक त्वरित उदाहरण दिया गया है।
संगीत का उपयोग करें;ऑब्जेक्टप्रॉपर्टी चुनें(34099162, 'IsTableFunction') AS [IsTableFunction];
परिणाम:
+---------------------+| IsTableFunction ||-------------------|| 1 |+---------------------+
इस मामले में, संगीत डेटाबेस में प्रदान की गई आईडी के साथ एक ऑब्जेक्ट है, और यह एक तालिका-मूल्यवान फ़ंक्शन है।
उदाहरण 2 - ऑब्जेक्ट आईडी प्राप्त करना
यदि आप वस्तु का नाम जानते हैं, लेकिन उसकी आईडी नहीं, तो आप OBJECT_ID()
का उपयोग कर सकते हैं आईडी को उसके नाम के आधार पर पुनः प्राप्त करने के लिए कार्य करता है।
उदाहरण:
ऑब्जेक्टप्रॉपर्टी चुनें(OBJECT_ID('ufn_AlbumsByGenre'), 'IsTableFunction') AS [IsTableFunction];
परिणाम:
+---------------------+| IsTableFunction ||-------------------|| 1 |+---------------------+
पिछले उदाहरण से यह वही वस्तु है।
यहां यह फिर से अलग से आईडी आउटपुट के साथ है।
चुनें OBJECT_ID('ufn_AlbumsByGenre') AS [ऑब्जेक्ट आईडी], OBJECTPROPERTY(OBJECT_ID('ufn_AlbumsByGenre'), 'IsTableFunction') AS [IsTableFunction];
परिणाम:
+-------------+----+| ऑब्जेक्ट आईडी | IsTableFunction ||---------------+-------------------|| 34099162 | 1 |+---------------+-------------------+
उदाहरण 3 - जब ऑब्जेक्ट टेबल-वैल्यूड फंक्शन नहीं है
जब ऑब्जेक्ट तालिका-मूल्यवान फ़ंक्शन नहीं होता है, तो यहां क्या होता है।
ऑब्जेक्टप्रॉपर्टी चुनें(885578193, 'IsTableFunction') AS [IsTableFunction];
परिणाम:
+---------------------+| IsTableFunction ||-------------------|| 0 |+---------------------+
इस मामले में, डेटाबेस करता है उस आईडी के साथ एक वस्तु है, लेकिन वस्तु वास्तव में एक उपयोगकर्ता तालिका है (तालिका-मूल्यवान फ़ंक्शन नहीं), इसलिए मुझे एक नकारात्मक परिणाम मिलता है।
यहां यह फिर से OBJECT_ID()
का उपयोग कर रहा है ।
परिणाम:
+-------+----+---------- ---+| ऑब्जेक्ट आईडी | इसटेबल फंक्शन | IsUserTable ||---------------+-------------------+--------------- --|| 885578193 | 0 | 1 |+---------------+---------------------+--------------- --+
मैंने यह देखने के लिए भी जाँच की कि क्या वस्तु एक उपयोगकर्ता द्वारा परिभाषित तालिका है, और परिणाम सकारात्मक है।
उदाहरण 4 - वस्तु मौजूद नहीं है
SQL सर्वर मानता है कि ऑब्जेक्ट आईडी वर्तमान डेटाबेस संदर्भ में है। यदि आप किसी भिन्न डेटाबेस से ऑब्जेक्ट आईडी पास करते हैं, तो आपको या तो एक पूर्ण परिणाम मिलेगा या आपको गलत परिणाम मिलेंगे।
ऑब्जेक्टप्रॉपर्टी चुनें(OBJECT_ID('InvalidObject'), 'IsTableFunction') AS [InvalidObject], OBJECTPROPERTY(12345678, 'IsTableFunction') AS [12345678];
परिणाम:
+---------------------+---------------+| अमान्य वस्तु | 12345678 ||---------------------+---------------|| नल | नल |+---------------------+---------------+
इस मामले में डेटाबेस में उस नाम या आईडी की कोई वस्तु नहीं है, और इसलिए मुझे एक पूर्ण परिणाम मिलता है।
त्रुटि होने पर या यदि आपके पास ऑब्जेक्ट देखने की अनुमति नहीं है, तो आपको NULL भी मिलेगा।