SQL सर्वर में आप OBJECTPROPERTY()
. का उपयोग कर सकते हैं यह पता लगाने के लिए कार्य करता है कि कोई वस्तु एक संग्रहित प्रक्रिया है या नहीं।
यह फ़ंक्शन दो पैरामीटर स्वीकार करता है:ऑब्जेक्ट आईडी, और वह प्रॉपर्टी जिसके लिए आप इसकी जांच कर रहे हैं।
इसलिए, आप ऑब्जेक्ट आईडी को पहले तर्क के रूप में पास कर सकते हैं, और IsProcedure
दूसरे के रूप में, और फ़ंक्शन या तो 1
. लौटाएगा या एक 0
इस पर निर्भर करता है कि यह एक संग्रहीत प्रक्रिया है या नहीं।
1
. का वापसी मान इसका मतलब है कि यह है एक संग्रहीत कार्यविधि, और 0
. का मान इसका मतलब है कि ऐसा नहीं है।
उदाहरण 1 - मूल उपयोग
प्रदर्शित करने के लिए यहां एक त्वरित उदाहरण दिया गया है।
WideWorldImportersDW का उपयोग करें;ऑब्जेक्टप्रॉपर्टी चुनें(466100701, 'IsProcedure') AS [IsProcedure];
परिणाम:
+---------------+| प्रक्रिया ||---------------|| 1 |+---------------+
इस मामले में, संगीत डेटाबेस में प्रदान की गई आईडी के साथ एक वस्तु है, और यह वास्तव में एक संग्रहीत प्रक्रिया है।
उदाहरण 2 - ऑब्जेक्ट आईडी प्राप्त करना
यदि आप वस्तु का नाम जानते हैं, लेकिन उसकी आईडी नहीं, तो आप OBJECT_ID()
का उपयोग कर सकते हैं आईडी को उसके नाम के आधार पर पुनः प्राप्त करने के लिए कार्य करता है।
उदाहरण:
ऑब्जेक्टप्रॉपर्टी चुनें(OBJECT_ID('Integration.GetLineageKey'), 'IsProcedure') AS [IsProcedure];
परिणाम:
+---------------+| प्रक्रिया ||---------------|| 1 |+---------------+
इस मामले में मैंने पिछले उदाहरण से उसी वस्तु की जाँच की।
यहां यह फिर से अलग से आईडी आउटपुट के साथ है।
चुनें OBJECT_ID('Integration.GetLineageKey') AS [ऑब्जेक्ट आईडी], OBJECTPROPERTY(OBJECT_ID('Integration.GetLineageKey'), 'IsProcedure') AS [IsProcedure];
परिणाम:
+--------------+---------------+| ऑब्जेक्ट आईडी | प्रक्रिया ||---------------+---------------|| 466100701 | 1 |+---------------+---------------+
उदाहरण 3 - जब वस्तु एक संग्रहित प्रक्रिया नहीं है
यहाँ क्या होता है जब ऑब्जेक्ट एक संग्रहित प्रक्रिया नहीं है।
ऑब्जेक्टप्रॉपर्टी चुनें(1013578649, 'IsProcedure') AS [IsProcedure];
परिणाम:
+---------------+| प्रक्रिया ||---------------|| 0 |+---------------+
इस मामले में, डेटाबेस करता है वास्तव में उस आईडी के साथ एक वस्तु है, लेकिन वस्तु वास्तव में एक तालिका है, इसलिए मुझे एक नकारात्मक परिणाम मिलता है।
यहां यह फिर से OBJECT_ID()
का उपयोग कर रहा है ।
चुनें OBJECT_ID('Dimension.City') AS [ऑब्जेक्ट आईडी], OBJECTPROPERTY(OBJECT_ID('Dimension.City'), 'IsProcedure') AS [IsProcedure];
परिणाम:
+--------------+---------------+| ऑब्जेक्ट आईडी | प्रक्रिया ||---------------+---------------|| 1013578649 | 0 |+---------------+---------------+
उदाहरण 4 - वस्तु मौजूद नहीं है
SQL सर्वर मानता है कि ऑब्जेक्ट आईडी वर्तमान डेटाबेस संदर्भ में है। यदि आप किसी भिन्न डेटाबेस से ऑब्जेक्ट आईडी पास करते हैं, तो आपको या तो एक पूर्ण परिणाम मिलेगा या आपको गलत परिणाम मिलेंगे।
वस्तु चुनेंपरिणाम:
+---------------------+---------------+| अस्तित्वहीन वस्तु | 1111111 ||---------------------+---------------|| नल | नल |+---------------------+---------------+इस मामले में डेटाबेस में उस नाम या आईडी की कोई वस्तु नहीं है।