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

SQL सर्वर में कॉलम या पैरामीटर जानकारी वापस करने के लिए COLUMNPROPERTY() का उपयोग करें

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() जो डेटाबेस के लिए संपत्ति की जानकारी देता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. परिणाम के रूप में पूर्ण दिनांक-समय मान के साथ SQL सर्वर में प्रति घंटे पंक्तियों की गणना करें

  2. SQL सर्वर में कनेक्शन के लिए संयोजन कैसे सेट करें?

  3. SQL सर्वर कब रिवाइंड करता है?

  4. SQL सर्वर लूप - मैं रिकॉर्ड के एक सेट के माध्यम से कैसे लूप करूं

  5. संग्रहीत प्रक्रिया से डेटा पुनर्प्राप्त करें जिसमें एकाधिक परिणाम सेट हैं