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

SQL सर्वर में OBJECTPROPERTY () बनाम OBJECTPROPERTYEX ():क्या अंतर है?

SQL सर्वर में, आपको OBJECTPROPERTY() . का सामना करना पड़ सकता है फ़ंक्शन, केवल यह पता लगाने के लिए कि एक OBJECTPROPERTYEX() भी है ऐसा लगता है कि फ़ंक्शन बिल्कुल वही काम करता है।

यहाँ क्या चल रहा है? एक ही काम करने वाले दो कार्यों की आवश्यकता क्यों है?

मेरी समझ यह है कि माइक्रोसॉफ्ट ने OBJECTPROPERTYEX() . जोड़ना चुना है OBJECTPROPERTY() . की कार्यक्षमता बढ़ाने के लिए , OBJECTPROPERTY() . में परिवर्तन करने के बजाय जो संभावित रूप से पुराने सिस्टम पर मौजूदा कोड को तोड़ देगा।

तो कुछ कुछ हैं दो कार्यों के बीच अंतर।

क्या अलग है?

संक्षेप में, OBJECTPROPERTYEX() छह अतिरिक्त गुणों का समर्थन करता है, और इसका रिटर्न प्रकार अलग है।

यह रहा एक विश्लेषण।

वस्तु संपत्ति () OBJECTPROPERTYEX ()
रिटर्न प्रकार इंट sql_variant
समर्थित संपत्तियों की संख्या 103 109
अतिरिक्त गुण
  • आधार प्रकार
  • IsPrecise
  • SystemDataAccess
  • TableFullTextSemanticExtraction
  • उपयोगकर्ता डेटा एक्सेस
  • कार्डिनैलिटी
समर्थित गुण
  • CnstIsClustKey
  • CnstIsColumn
  • CnstIsDeleteCascade
  • CnstIsअक्षम
  • CnstIsNonclustKey
  • CnstIsNotRepl
  • CnstIsNotTrusted
  • CnstIsUpdateCascade
  • ExecIsAfterTrigger
  • ExecIsAnsiNullsOn
  • ExecIsDeleteTrigger
  • ExecIsFirstDeleteTrigger
  • ExecIsFirstInsertTrigger
  • ExecIsFirstUpdateTrigger
  • ExecIsInsertTrigger
  • ExecIsInsteadOfTrigger
  • ExecIsLastDeleteTrigger
  • ExecIsLastInsertTrigger
  • ExecIsLastUpdateTrigger
  • ExecIsQuotedIdentOn
  • ExecIsStartup
  • ExecIsTriggerDisabled
  • ExecIsTriggerNotForRepl
  • ExecIsUpdateTrigger
  • ExecIsWithNativeCompilation
  • HasAfterTrigger
  • HasDeleteTrigger
  • HasInsertTrigger
  • HasInsteadOfTrigger
  • HasUpdateTrigger
  • IsAnsiNullsOn
  • IscheckCnst
  • बाधा है
  • IsDefault
  • IsDefaultCnst
  • नियतात्मक है
  • एन्क्रिप्टेड है
  • निष्पादित है
  • IsExtendedProc
  • IsForeignKey
  • इंडेक्स किया गया है
  • अनुक्रमणीय है
  • IsInlineFunction
  • आईएसएमएसशिप किया गया
  • IsPrimaryKey
  • इस प्रक्रिया
  • IsQuotedIdentOn
  • IsQueue
  • IsReplProc
  • इसरूल
  • IscalarFunction
  • इसस्कीमा बाउंड
  • IsSystemTable
  • IsSystemVerified
  • इसटेबल
  • IsTableFunction
  • IsTrigger
  • IsUniqueCnst
  • IsUserTable
  • IsView
  • स्वामी आईडी
  • स्कीमा आईडी
  • TableDeleteTrigger
  • TableDeleteTriggerCount
  • TableFullTextMergeStatus
  • टेबलफुलटेक्स्टबैकग्राउंडअपडेटइंडेक्सऑन
  • TableFulltextCatalogId
  • टेबलफुलटेक्स्टचेंजट्रैकिंगऑन
  • TableFulltextDocsसंसाधित
  • टेबलफुलटेक्स्टफेलकाउंट
  • टेबलफुलटेक्स्टआइटमकाउंट
  • टेबलफुलटेक्स्टकी कॉलम
  • तालिकापूर्णपाठलंबित परिवर्तन
  • TableFulltextPopulateStatus
  • TableHasActiveFulltextIndex
  • TableHasCheckCnst
  • TableHasClustIndex
  • TableHasDefaultCnst
  • TableHasDeleteTrigger
  • TableHasForeignKey
  • TableHasForeignRef
  • TableHasIdentity
  • TableHasIndex
  • TableHasInsertTrigger
  • TableHasNonclustIndex
  • TableHasPrimaryKey
  • TableHasRowGuidCol
  • TableHasTextImage
  • टेबलहैसटाइमस्टैम्प
  • TableHasUniqueCnst
  • TableHasUpdateTrigger
  • TableHasVarDecimalStorageFormat
  • TableInsertTrigger
  • TableInsertTriggerCount
  • TableIsFake
  • TableIsLockedOnBulkLoad
  • TableIsMemoryOptimized
  • टेबल पर पिन किया गया
  • TableTextInRowLimit
  • टेबलअपडेट ट्रिगर
  • TableUpdateTriggerCount
  • TableHasColumnSet
  • टेबल टेम्पोरल टाइप
  • आधार प्रकार
  • CnstIsClustKey
  • CnstIsColumn
  • CnstIsDeleteCascade
  • CnstIsअक्षम
  • CnstIsNonclustKey
  • CnstIsNotRepl
  • CnstIsNotTrusted
  • CnstIsUpdateCascade
  • ExecIsAfterTrigger
  • ExecIsAnsiNullsOn
  • ExecIsDeleteTrigger
  • ExecIsFirstDeleteTrigger
  • ExecIsFirstInsertTrigger
  • ExecIsFirstUpdateTrigger
  • ExecIsInsertTrigger
  • ExecIsInsteadOfTrigger
  • ExecIsLastDeleteTrigger
  • ExecIsLastInsertTrigger
  • ExecIsLastUpdateTrigger
  • ExecIsQuotedIdentOn
  • ExecIsStartup
  • ExecIsTriggerDisabled
  • ExecIsTriggerNotForRepl
  • ExecIsUpdateTrigger
  • ExecIsWithNativeCompilation
  • HasAfterTrigger
  • HasDeleteTrigger
  • HasInsertTrigger
  • HasInsteadOfTrigger
  • HasUpdateTrigger
  • IsAnsiNullsOn
  • IscheckCnst
  • बाधा है
  • IsDefault
  • IsDefaultCnst
  • नियतात्मक है
  • एन्क्रिप्टेड है
  • निष्पादित है
  • IsExtendedProc
  • IsForeignKey
  • इंडेक्स किया गया है
  • अनुक्रमणीय है
  • IsInlineFunction
  • आईएसएमएसशिप किया गया
  • IsPrecise
  • IsPrimaryKey
  • इस प्रक्रिया
  • IsQuotedIdentOn
  • IsQueue
  • IsReplProc
  • इसरूल
  • IscalarFunction
  • इसस्कीमा बाउंड
  • IsSystemTable
  • IsSystemVerified
  • इसटेबल
  • IsTableFunction
  • IsTrigger
  • IsUniqueCnst
  • IsUserTable
  • IsView
  • स्वामी आईडी
  • स्कीमा आईडी
  • SystemDataAccess
  • TableDeleteTrigger
  • TableDeleteTriggerCount
  • TableFullTextMergeStatus
  • टेबलफुलटेक्स्टबैकग्राउंडअपडेटइंडेक्सऑन
  • TableFulltextCatalogId
  • TableFullTextChangeTrackingOn
  • TableFulltextDocsसंसाधित
  • टेबलफुलटेक्स्टफेलकाउंट
  • टेबलफुलटेक्स्टआइटमकाउंट
  • टेबलफुलटेक्स्टकी कॉलम
  • तालिकापूर्णपाठलंबित परिवर्तन
  • TableFulltextPopulateStatus
  • TableFullTextSemanticExtraction
  • TableHasActiveFulltextIndex
  • TableHasCheckCnst
  • TableHasClustIndex
  • TableHasDefaultCnst
  • TableHasDeleteTrigger
  • TableHasForeignKey
  • TableHasForeignRef
  • TableHasIdentity
  • TableHasIndex
  • TableHasInsertTrigger
  • TableHasNonclustIndex
  • TableHasPrimaryKey
  • TableHasRowGuidCol
  • TableHasTextImage
  • टेबलहैसटाइमस्टैम्प
  • TableHasUniqueCnst
  • TableHasUpdateTrigger
  • TableHasVarDecimalStorageFormat
  • TableInsertTrigger
  • TableInsertTriggerCount
  • TableIsFake
  • TableIsLockedOnBulkLoad
  • TableIsMemoryOptimized
  • टेबल पर पिन किया गया
  • TableTextInRowLimit
  • टेबलअपडेट ट्रिगर
  • TableUpdateTriggerCount
  • UserDataAccess
  • TableHasColumnSet
  • कार्डिनैलिटी
  • टेबल टेम्पोरल टाइप

अतिरिक्त गुणों का उदाहरण

यहां एक उदाहरण दिया गया है जो उपयोग में आने वाली इन अतिरिक्त संपत्तियों को दिखाता है।

 वाइडवर्ल्ड इम्पोर्टर्स डीडब्ल्यू का उपयोग करें; DECLARE @objectId int =OBJECT_ID (N'Integration.GenerateDateDimensionColumns'); चयन OBJECTPROPERTYEX(@objectId, 'BaseType') AS बेसटाइप, OBJECTPROPERTYEX(@objectId, 'IsPrecise, ECTPROPERD ASPrecise, ECTPROPERD ASPrecise') , 'SystemDataAccess') AS SystemDataAccess, OBJECTPROPERTYEX(@objectId, 'TableFullTextSemanticExtraction') AS TableFullTextSemanticExtraction, OBJECTPROPERTYEX(@objectId, 'UserDataAccess') AS UserDataAccess, OBJECTPROPERTYEX(@obJECTPROPERTYEX(@obJECTPROPERTYEX) 

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

बेस टाइप | IFIsसटीक | 0SystemDataAccess | 1TableFullTextSemanticExtraction | 0UserDataAccess | 1 कार्डिनैलिटी | शून्य

इस मामले में, ऑब्जेक्ट एक तालिका-मूल्यवान फ़ंक्शन है, और यह छह गुणों में से पांच के लिए डेटा लौटाता है।

आइए अब इसके बजाय तालिका के नाम से गुजरते हैं यह देखने के लिए कि क्या हम कार्डिनैलिटी के लिए एक मूल्य प्राप्त कर सकते हैं।

 वाइडवर्ल्ड इम्पोर्टर्स डीडब्ल्यू का उपयोग करें; DECLARE @objectId int =OBJECT_ID(N'Dimension.City'); OBJECTPROPERTYEX(@objectId, 'BaseType') को बेस टाइप, OBJECTPROPERTYEX(@objectId, 'IsPrecise') के रूप में IsPrecise, OBJECTId के रूप में चुनें , 'SystemDataAccess') AS SystemDataAccess, OBJECTPROPERTYEX(@objectId, 'TableFullTextSemanticExtraction') AS TableFullTextSemanticExtraction, OBJECTPROPERTYEX(@objectId, 'UserDataAccess') AS UserDataAccess, OBJECTPROPERTYEX(@obJECTPROPERTYEX(@obJECTPROPERTYEX) 

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

बेस टाइप | यू सटीक | NULLSystemDataAccess | NULLTableFullTextSemanticExtraction | 0UserDataAccess | न्यूलकार्डिनैलिटी | 116295

इस बार हमें तीन संपत्तियों के लिए 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. TSQL डेटाटाइम फ़ील्ड से YYYY-MM-DD प्रारूप में दिनांक कैसे प्राप्त करें?

  2. TSQL md5 हैश C# .NET md5 से अलग है

  3. SQL सर्वर फेलओवर क्लस्टर इंस्टालेशन -4

  4. अधिक उन्नत क्वेरी चलाते समय ऑब्जेक्ट बंद होने पर ऑपरेशन की अनुमति नहीं है

  5. कॉलम के लिए SQL पंक्तियाँ