SQL सर्वर में, OBJECTPROPERTYEX()
फ़ंक्शन वर्तमान डेटाबेस में स्कीमा-स्कोप्ड ऑब्जेक्ट्स के बारे में जानकारी देता है।
यह फ़ंक्शन ठीक वैसा ही काम करता है जैसे OBJECTPROPERTY()
, सिवाय इसके कि यह अधिक गुणों का समर्थन करता है, और वापसी मूल्य अलग है। OBJECTPROPERTYEX()
फ़ंक्शन एक sql_variant देता है टाइप करें, जबकि OBJECTPROPERTY()
एक int . लौटाता है टाइप करें।
सिंटैक्स
फ़ंक्शन दो तर्कों को स्वीकार करता है:ऑब्जेक्ट की आईडी, और वह संपत्ति जिसे आप वापस करना चाहते हैं।
OBJECTPROPERTYEX ( id , property )
उदाहरण 1 - मूल उपयोग
इस फ़ंक्शन के मूल उपयोग को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT OBJECTPROPERTYEX('885578193', 'BaseType') AS Result;
परिणाम:
+----------+ | Result | |----------| | U | +----------+
इस मामले में, 885578193
. की आईडी वाला कोई ऑब्जेक्ट है और यह एक टेबल है। इस ऑब्जेक्ट का बेस टाइप यू है।
उदाहरण 2 - वस्तु का नामकरण
पिछले उदाहरण में, मैं वस्तु की आईडी जानता था। ज्यादातर मामलों में आप शायद केवल वस्तु का नाम जानते होंगे, लेकिन उसकी आईडी नहीं। ऐसे मामलों में, आप OBJECT_ID()
. का उपयोग कर सकते हैं ऑब्जेक्ट की आईडी उसके नाम के आधार पर प्राप्त करने के लिए कार्य करता है।
इस तरह:
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'Artists'), 'BaseType') AS Result;
परिणाम:
+----------+ | Result | |----------| | U | +----------+
उदाहरण 3 - अधिक गुण
यहां एक उदाहरण दिया गया है जो OBJECTPROPERTY()
के साथ और अधिक प्रॉपर्टी लौटाता है जो आपको वापस नहीं मिलेगी। ।
USE WideWorldImportersDW; DECLARE @objectId int = OBJECT_ID(N'Integration.GenerateDateDimensionColumns'); SELECT OBJECTPROPERTYEX(@objectId, 'BaseType') AS BaseType, OBJECTPROPERTYEX(@objectId, 'IsPrecise') AS IsPrecise, OBJECTPROPERTYEX(@objectId, 'SystemDataAccess') AS SystemDataAccess, OBJECTPROPERTYEX(@objectId, 'UserDataAccess') AS UserDataAccess;
परिणाम:
+------------+-------------+--------------------+------------------+ | BaseType | IsPrecise | SystemDataAccess | UserDataAccess | |------------+-------------+--------------------+------------------| | IF | 0 | 1 | 1 | +------------+-------------+--------------------+------------------+
लेखन के समय, OBJECTPROPERTYEX()
फ़ंक्शन 109 गुणों का समर्थन करता है। इस फ़ंक्शन द्वारा समर्थित गुणों की पूरी सूची के लिए नीचे देखें।
उदाहरण 4 - WHERE क्लॉज में
आप OBJECTPROPERTYEX()
. का उपयोग कर सकते हैं एक WHERE
. में यदि आवश्यक हो तो खंड।
इस उदाहरण में, मैं दो क्वेरीज़ चलाता हूं:एक वह टेबल लौटाता है जिसमें एक विदेशी कुंजी होती है, और एक जो एक विदेशी कुंजी द्वारा संदर्भित टेबल लौटाती है।
USE Music; SELECT SCHEMA_NAME(schema_id) AS [Schema], name AS [Table] FROM sys.tables WHERE OBJECTPROPERTYEX(object_id, 'TableHasForeignKey') = 1; SELECT SCHEMA_NAME(schema_id) AS [Schema], name AS [Table] FROM sys.tables WHERE OBJECTPROPERTYEX(object_id, 'TableHasForeignRef') = 1;
परिणाम:
Changed database context to 'Music'. +----------+---------+ | Schema | Table | |----------+---------| | dbo | Artists | | dbo | Albums | +----------+---------+ (2 rows affected) +----------+---------+ | Schema | Table | |----------+---------| | dbo | Artists | | dbo | Genres | | dbo | Country | +----------+---------+ (3 rows affected)
गुणों की पूरी सूची
यहां OBJECTPROPERTYEX()
. द्वारा समर्थित संपत्तियों की पूरी सूची दी गई है समारोह:
- आधार प्रकार
- 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
- उपयोगकर्ता डेटा एक्सेस
- TableHasColumnSet
- कार्डिनैलिटी
- टेबल टेम्पोरल टाइप
प्रत्येक संपत्ति की विस्तृत व्याख्या के लिए Microsoft दस्तावेज़ देखें।
यह भी देखें OBJECTPROPERTY()
बनाम OBJECTPROPERTYEX()
इन दो कार्यों के बीच अंतर की अधिक विस्तृत व्याख्या के लिए।