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

पता करें कि क्या ऑब्जेक्ट OBJECTPROPERTY () के साथ SQL सर्वर में एक टेबल-वैल्यूड फंक्शन है

आप 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' के रूप में ];

परिणाम:

+-------+----+---------- ---+| ऑब्जेक्ट आईडी | इसटेबल फंक्शन | IsUserTable ||---------------+-------------------+--------------- --|| 885578193 | 0 | 1 |+---------------+---------------------+--------------- --+

मैंने यह देखने के लिए भी जाँच की कि क्या वस्तु एक उपयोगकर्ता द्वारा परिभाषित तालिका है, और परिणाम सकारात्मक है।

उदाहरण 4 - वस्तु मौजूद नहीं है

SQL सर्वर मानता है कि ऑब्जेक्ट आईडी वर्तमान डेटाबेस संदर्भ में है। यदि आप किसी भिन्न डेटाबेस से ऑब्जेक्ट आईडी पास करते हैं, तो आपको या तो एक पूर्ण परिणाम मिलेगा या आपको गलत परिणाम मिलेंगे।

ऑब्जेक्टप्रॉपर्टी चुनें(OBJECT_ID('InvalidObject'), 'IsTableFunction') AS [InvalidObject], OBJECTPROPERTY(12345678, 'IsTableFunction') AS [12345678];

परिणाम:

+---------------------+---------------+| अमान्य वस्तु | 12345678 ||---------------------+---------------|| नल | नल |+---------------------+---------------+

इस मामले में डेटाबेस में उस नाम या आईडी की कोई वस्तु नहीं है, और इसलिए मुझे एक पूर्ण परिणाम मिलता है।

त्रुटि होने पर या यदि आपके पास ऑब्जेक्ट देखने की अनुमति नहीं है, तो आपको NULL भी मिलेगा।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या एक चेक बाधा किसी अन्य तालिका से संबंधित हो सकती है?

  2. SQL सर्वर अप्रयुक्त सूचकांक

  3. SQL सर्वर में @@MAX_CONNECTIONS कैसे काम करता है

  4. SQL सर्वर में 'डेटाटाइम' को 'डेटाटाइम 2' में बदलें (T-SQL उदाहरण)

  5. मुझे स्टोर प्रक्रिया में चयन कथन में चर का उपयोग करके कॉलम नाम पास करने की आवश्यकता है, लेकिन मैं गतिशील क्वेरी का उपयोग नहीं कर सकता