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

यह पता लगाने के लिए OBJECTPROPERTY() का उपयोग करें कि क्या कोई ऑब्जेक्ट SQL सर्वर में एक जाँच बाधा है

SQL सर्वर में आप OBJECTPROPERTY() . का उपयोग कर सकते हैं यह पता लगाने के लिए कार्य करता है कि कोई वस्तु CHECK है या नहीं बाधा।

यह फ़ंक्शन दो पैरामीटर स्वीकार करता है:ऑब्जेक्ट आईडी, और वह प्रॉपर्टी जिसके लिए आप इसकी जांच कर रहे हैं।

इसलिए, आप ऑब्जेक्ट आईडी को पहले तर्क के रूप में पास कर सकते हैं, और IsCheckCnst दूसरे के रूप में, और फ़ंक्शन या तो 1 . लौटाएगा या एक 0 यह इस पर निर्भर करता है कि यह CHECK है या नहीं बाधा

1 . का वापसी मान इसका मतलब है कि यह है एक CHECK बाधा, और 0 . का मान इसका मतलब है कि ऐसा नहीं है।

उदाहरण 1 - चेक बाधा की जांच करना

प्रदर्शित करने के लिए यहां एक त्वरित उदाहरण दिया गया है।

परीक्षण का उपयोग करें;ऑब्जेक्टप्रॉपर्टी चुनें(178099675, 'IscheckCnst') AS [IsCheckCnst];

परिणाम:

+---------------+| IscheckCnst ||---------------|| 1 |+---------------+

इस मामले में, परीक्षण डेटाबेस में प्रदान की गई आईडी के साथ एक ऑब्जेक्ट है, और यह वास्तव में एक CHECK है बाधा।

उदाहरण 2 - ऑब्जेक्ट आईडी प्राप्त करना

यदि आप वस्तु का नाम जानते हैं, लेकिन उसकी आईडी नहीं, तो आप OBJECT_ID() का उपयोग कर सकते हैं आईडी को उसके नाम के आधार पर पुनः प्राप्त करने के लिए कार्य करता है।

उदाहरण:

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

परिणाम:

+---------------+| IscheckCnst ||---------------|| 1 |+---------------+

इस मामले में मैंने पिछले उदाहरण से उसी वस्तु की जाँच की।

यहां यह फिर से अलग से आईडी आउटपुट के साथ है।

चुनें OBJECT_ID('chkEndDate') AS [ऑब्जेक्ट आईडी], OBJECTPROPERTY(OBJECT_ID('chkEndDate'), 'IsCheckCnst') AS [IsCheckCnst];

परिणाम:

+--------------+---------------+| ऑब्जेक्ट आईडी | IscheckCnst ||---------------+---------------|| 17809675 | 1 |+---------------+---------------+

उदाहरण 3 - किसी तालिका की जाँच करना (अर्थात जाँच बाधा नहीं)

यहाँ क्या होता है जब ऑब्जेक्ट CHECK . नहीं होता है बाधा।

ऑब्जेक्टप्रॉपर्टी चुनें(18099105, 'IscheckCnst') AS [IsCheckCnst];

परिणाम:

+---------------+| IscheckCnst ||---------------|| 0 |+---------------+

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

यहां यह फिर से OBJECT_ID() का उपयोग कर रहा है ।

चुनें OBJECT_ID('व्यक्तिगत') AS [ऑब्जेक्ट आईडी], OBJECTPROPERTY(OBJECT_ID('Individual'), 'IsCheckCnst') AS [IsCheckCnst];

परिणाम:

+--------------+---------------+| ऑब्जेक्ट आईडी | IscheckCnst ||---------------+---------------|| 18099105 | 0 |+---------------+---------------+

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

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

वस्तु चुनें 

परिणाम:

+---------------------+---------------+| अस्तित्वहीन वस्तु | 1111111 ||---------------------+---------------|| नल | नल |+---------------------+---------------+

इस मामले में डेटाबेस में उस नाम या आईडी की कोई वस्तु नहीं है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GDPR अनुपालन और आपका SQL सर्वर

  2. एक स्क्रिप्ट से SQL क्वेरी की तुलना में संग्रहीत कार्यविधियाँ निष्पादित क्यों तेज़ हैं?

  3. देखें कि क्या तालिका में OBJECTPROPERTY () का उपयोग करके SQL सर्वर में एक डिफ़ॉल्ट बाधा है

  4. EXP () SQL सर्वर में उदाहरण

  5. कैसे एक varchar autoincrement करने के लिए