SQL सर्वर में, COLUMNPROPERTY()
फ़ंक्शन कॉलम या पैरामीटर जानकारी देता है।
उदाहरण के लिए, आप इसका उपयोग किसी तालिका में किसी स्तंभ के बारे में जानकारी, संग्रहीत कार्यविधि के लिए एक पैरामीटर, आदि के बारे में जानकारी वापस करने के लिए कर सकते हैं
यह तीन तर्कों को स्वीकार करता है:तालिका या प्रक्रिया की आईडी, लागू कॉलम या पैरामीटर, और वह संपत्ति जिसके बारे में आप जानकारी चाहते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
COLUMNPROPERTY ( id , column , property )
उदाहरण 1 - किसी तालिका को क्वेरी करें
इस उदाहरण में, मुझे एक तालिका में एक कॉलम के बारे में जानकारी मिलती है।
USE Music; SELECT COLUMNPROPERTY(OBJECT_ID('Artists'), 'ArtistId', 'AllowsNull') AS [Result];
परिणाम:
+----------+ | Result | |----------| | 0 | +----------+
इस मामले में, ArtistId कॉलम NULL मानों की अनुमति नहीं देता है।
आइए एक अलग कॉलम पर स्विच करें:
SELECT COLUMNPROPERTY(OBJECT_ID('Artists'), 'ActiveFrom', 'AllowsNull') AS [ActiveFrom], COLUMNPROPERTY(OBJECT_ID('Artists'), 'ActiveFrom', 'Precision') AS [Precision], COLUMNPROPERTY(OBJECT_ID('Artists'), 'ActiveFrom', 'Scale') AS [Scale];
परिणाम:
+--------------+-------------+---------+ | ActiveFrom | Precision | Scale | |--------------+-------------+---------| | 1 | 10 | 0 | +--------------+-------------+---------+
इस स्थिति में, ActiveFrom कॉलम NULL मानों की अनुमति देता है। इसमें 10 की सटीकता और 0 का पैमाना भी है।
आप देखेंगे कि मैं OBJECT_ID()
. का उपयोग करता हूं तालिका की आईडी वापस करने के लिए कार्य। इस फ़ंक्शन के बिना, मुझे आईडी जानना होगा (या मुझे केवल आईडी प्राप्त करने के लिए एक और क्वेरी करने की आवश्यकता होगी)।
यहाँ क्या है OBJECT_ID()
उपरोक्त उदाहरण में रिटर्न:
SELECT OBJECT_ID('Artists') AS Result;
परिणाम:
+-----------+ | Result | |-----------| | 885578193 | +-----------+
तो अब जब हम आईडी जानते हैं, तो हम उसे COLUMNPROPERTY()
पर भेज सकते हैं इसके बजाय कार्य करें:
SELECT COLUMNPROPERTY(885578193, 'ActiveFrom', 'AllowsNull') AS [ActiveFrom], COLUMNPROPERTY(885578193, 'ActiveFrom', 'Precision') AS [Precision], COLUMNPROPERTY(885578193, 'ActiveFrom', 'Scale') AS [Scale];
परिणाम:
+--------------+-------------+---------+ | ActiveFrom | Precision | Scale | |--------------+-------------+---------| | 1 | 10 | 0 | +--------------+-------------+---------+
उदाहरण 2 - एक प्रक्रिया पूछें
इस उदाहरण में, मुझे संग्रहीत कार्यविधि के एक पैरामीटर के बारे में जानकारी मिलती है।
USE Music; SELECT COLUMNPROPERTY( OBJECT_ID('dbo.uspGetAlbumsByArtist'), '@ArtistId', 'IsOutParam') AS [Result];
परिणाम:
+----------+ | Result | |----------| | 0 | +----------+
तो यह बिल्कुल वही वाक्यविन्यास है। इस मामले में, पैरामीटर @ArtistId
आउटपुट पैरामीटर नहीं है।
विकल्पों की पूरी सूची
यहां उन तर्कों की पूरी सूची दी गई है जिन्हें आप COLUMNPROPERTY()
पर भेज सकते हैं लेखन के समय:
- अनुमति शून्य
- कॉलम आईडी
- FullTextTypeColumn
- GeneratedAlwaysType
- IsColumnSet
- गणना की जाती है
- IsCursorType
- नियतात्मक है
- FulltextIndexed है
- छिपा हुआ है
- IsIdentity
- IsIdNotForRepl
- अनुक्रमणीय है
- IsOutParam
- IsPrecise
- IsRowGuidCol
- इसस्पार्स
- IsSystemVerified
- IsXmlIndexable
- परिशुद्धता
- पैमाना
- सांख्यिकीय शब्दार्थ
- सिस्टमडेटा एक्सेस
- उपयोगकर्ता डेटा एक्सेस
- AnsiTrim का उपयोग करता है
प्रत्येक संपत्ति की विस्तृत व्याख्या के लिए Microsoft दस्तावेज़ देखें।
यह भी देखें OBJECTPROPERTYEX()
एक समान फ़ंक्शन के लिए जो डेटाबेस के बजाय स्कीमा-स्कोप्ड ऑब्जेक्ट्स के बारे में जानकारी देता है, और DATABASEPROPERTYEX()
जो डेटाबेस के लिए संपत्ति की जानकारी देता है।