SQL सर्वर में, आप TYPEPROPERTY()
. का उपयोग कर सकते हैं डेटा प्रकार के बारे में जानकारी वापस करने के लिए कार्य करता है।
आप डेटा प्रकार का नाम, साथ ही वह संपत्ति प्रदान करते हैं जिसे आप वापस करना चाहते हैं, और यह दिए गए डेटा प्रकार के लिए उस संपत्ति के बारे में जानकारी देता है।
आप TYPEPROPERTY()
. का उपयोग कर सकते हैं सिस्टम डेटा प्रकारों और उपयोगकर्ता-परिभाषित डेटा प्रकारों के लिए।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TYPEPROPERTY (type , property)
जहां टाइप करें डेटा प्रकार है, और संपत्ति वह विशेष संपत्ति है जिसके बारे में आप जानकारी चाहते हैं।
5 संभावित गुण हैं:AllowsNull , स्वामी आईडी , परिशुद्धता , पैमाना , और UsesAnsiTrim .
इन गुणों के बारे में अधिक विस्तृत जानकारी के लिए और वे इस फ़ंक्शन के साथ कैसे काम करते हैं, Microsoft दस्तावेज़ देखें।
उदाहरण 1 - मूल उपयोग
यह कैसे काम करता है, यह दिखाने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT TYPEPROPERTY('int', 'Precision') AS Result;
परिणाम:
+----------+ | Result | |----------| | 10 | +----------+
यह परिणाम हमें बताता है कि int डेटा प्रकार की सटीकता 10 होती है।
उदाहरण 2 - सभी गुण
यहां एक उदाहरण दिया गया है जो datetime2 . के लिए सभी प्रॉपर्टी लौटाता है डेटा प्रकार।
SELECT TYPEPROPERTY( 'datetime2', 'AllowsNull') AS [AllowsNull], TYPEPROPERTY( 'datetime2', 'OwnerId') AS [OwnerId], TYPEPROPERTY( 'datetime2', 'Precision') AS [Precision], TYPEPROPERTY( 'datetime2', 'Scale') AS [Scale], TYPEPROPERTY( 'datetime2', 'UsesAnsiTrim') AS [UsesAnsiTrim];
परिणाम:
+--------------+-----------+-------------+---------+----------------+ | AllowsNull | OwnerId | Precision | Scale | UsesAnsiTrim | |--------------+-----------+-------------+---------+----------------| | 1 | 4 | 27 | 7 | NULL | +--------------+-----------+-------------+---------+----------------+
कारण UsesAnsiTrim
न्यूल है क्योंकि वह संपत्ति केवल बाइनरी और स्ट्रिंग डेटा प्रकारों के लिए लागू होती है।
प्रदर्शित करने के लिए, एक स्ट्रिंग डेटा प्रकार का उपयोग करने के अलावा, यह फिर से है:
SELECT TYPEPROPERTY( 'varchar', 'AllowsNull') AS [AllowsNull], TYPEPROPERTY( 'varchar', 'OwnerId') AS [OwnerId], TYPEPROPERTY( 'varchar', 'Precision') AS [Precision], TYPEPROPERTY( 'varchar', 'Scale') AS [Scale], TYPEPROPERTY( 'varchar', 'UsesAnsiTrim') AS [UsesAnsiTrim];
परिणाम:
+--------------+-----------+-------------+---------+----------------+ | AllowsNull | OwnerId | Precision | Scale | UsesAnsiTrim | |--------------+-----------+-------------+---------+----------------| | 1 | 4 | 8000 | NULL | 1 | +--------------+-----------+-------------+---------+----------------+
इस बार Scale
शून्य है। ऐसा इसलिए है क्योंकि यह गुण केवल संख्यात्मक और निश्चित दिनांक प्रकारों के लिए लागू होता है।
उदाहरण 3 - स्केल या प्रेसिजन निर्दिष्ट करना
कुछ डेटा प्रकार आपको एक पैमाना या सटीकता निर्दिष्ट करने की अनुमति देते हैं, लेकिन TYPEPROPERTY()
इसे स्वीकार नहीं करेंगे:
SELECT TYPEPROPERTY( 'datetime2(3)', 'Scale') AS [Datetime2 Scale], TYPEPROPERTY( 'datetime2(3)', 'Precision') AS [Datetime2 Precision], TYPEPROPERTY( 'varchar(255)', 'Precision') AS [Varchar Precision];
परिणाम:
+-------------------+-----------------------+---------------------+ | Datetime2 Scale | Datetime2 Precision | Varchar Precision | |-------------------+-----------------------+---------------------| | NULL | NULL | NULL | +-------------------+-----------------------+---------------------+
उदाहरण 4 - उपयोगकर्ता-निर्धारित डेटा प्रकार
TYPEPROPERTY()
फ़ंक्शन उपयोगकर्ता द्वारा परिभाषित डेटा प्रकारों पर भी काम करता है।
यहां एक उदाहरण दिया गया है।
SELECT TYPEPROPERTY( 'clientcode', 'AllowsNull') AS [AllowsNull], TYPEPROPERTY( 'clientcode', 'OwnerId') AS [OwnerId], TYPEPROPERTY( 'clientcode', 'Precision') AS [Precision], TYPEPROPERTY( 'clientcode', 'Scale') AS [Scale], TYPEPROPERTY( 'clientcode', 'UsesAnsiTrim') AS [UsesAnsiTrim];
परिणाम:
+--------------+-----------+-------------+---------+----------------+ | AllowsNull | OwnerId | Precision | Scale | UsesAnsiTrim | |--------------+-----------+-------------+---------+----------------| | 0 | 1 | 8 | NULL | 1 | +--------------+-----------+-------------+---------+----------------+
उदाहरण 5 - डेटा प्रकार स्कीमा उपसर्ग सहित
आप डेटा प्रकार को स्कीमा नाम के साथ उपसर्ग भी कर सकते हैं।
SELECT TYPEPROPERTY( 'sys.int', 'AllowsNull') AS [AllowsNull], TYPEPROPERTY( 'sys.int', 'OwnerId') AS [OwnerId], TYPEPROPERTY( 'sys.int', 'Precision') AS [Precision], TYPEPROPERTY( 'sys.int', 'Scale') AS [Scale], TYPEPROPERTY( 'sys.int', 'UsesAnsiTrim') AS [UsesAnsiTrim];
परिणाम:
+--------------+-----------+-------------+---------+----------------+ | AllowsNull | OwnerId | Precision | Scale | UsesAnsiTrim | |--------------+-----------+-------------+---------+----------------| | 1 | 4 | 10 | 0 | NULL | +--------------+-----------+-------------+---------+----------------+
उदाहरण 6 - डेटाबेस में सभी डेटा प्रकारों के लिए जानकारी लौटाएं
यहां एक उदाहरण दिया गया है जो वर्तमान डेटाबेस में सभी डेटा प्रकारों के लिए संपत्ति की जानकारी देता है।
ऐसा करने के लिए, मैं sys.types
. को क्वेरी करता हूं सिस्टम दृश्य। मैं SCHEMA_NAME()
. का भी उपयोग करता हूं स्कीमा का नाम उसकी आईडी के आधार पर प्राप्त करने के लिए कार्य करता है।
SELECT SCHEMA_NAME(schema_id) AS [Schema], name AS [Data Type], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'AllowsNull') AS [AllowsNull], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId') AS [OwnerId], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'Precision') AS [Precision], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'Scale') AS [Scale], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'UsesAnsiTrim') AS [UsesAnsiTrim] FROM sys.types ORDER BY name;
परिणाम:
+----------+------------------+--------------+-----------+-------------+---------+----------------+ | Schema | Data Type | AllowsNull | OwnerId | Precision | Scale | UsesAnsiTrim | |----------+------------------+--------------+-----------+-------------+---------+----------------| | sys | bigint | 1 | 4 | 19 | 0 | NULL | | sys | binary | 1 | 4 | 8000 | NULL | 1 | | sys | bit | 1 | 4 | 1 | NULL | NULL | | sys | char | 1 | 4 | 8000 | NULL | 1 | | dbo | clientcode | 0 | 1 | 8 | NULL | 1 | | sys | date | 1 | 4 | 10 | 0 | NULL | | sys | datetime | 1 | 4 | 23 | 3 | NULL | | sys | datetime2 | 1 | 4 | 27 | 7 | NULL | | sys | datetimeoffset | 1 | 4 | 34 | 7 | NULL | | sys | decimal | 1 | 4 | 38 | 38 | NULL | | sys | float | 1 | 4 | 53 | NULL | NULL | | sys | geography | 1 | 4 | -1 | NULL | NULL | | sys | geometry | 1 | 4 | -1 | NULL | NULL | | sys | hierarchyid | 1 | 4 | 892 | NULL | NULL | | sys | image | 1 | 4 | 2147483647 | NULL | NULL | | sys | int | 1 | 4 | 10 | 0 | NULL | | sys | money | 1 | 4 | 19 | 4 | NULL | | sys | nchar | 1 | 4 | 4000 | NULL | NULL | | sys | ntext | 1 | 4 | 1073741823 | NULL | NULL | | sys | numeric | 1 | 4 | 38 | 38 | NULL | | sys | nvarchar | 1 | 4 | 4000 | NULL | NULL | | sys | real | 1 | 4 | 24 | NULL | NULL | | sys | smalldatetime | 1 | 4 | 16 | 0 | NULL | | sys | smallint | 1 | 4 | 5 | 0 | NULL | | sys | smallmoney | 1 | 4 | 10 | 4 | NULL | | sys | sql_variant | 1 | 4 | 0 | NULL | 1 | | sys | sysname | 0 | 4 | 128 | NULL | NULL | | sys | text | 1 | 4 | 2147483647 | NULL | NULL | | sys | time | 1 | 4 | 16 | 7 | NULL | | sys | timestamp | 0 | 4 | 8 | NULL | NULL | | sys | tinyint | 1 | 4 | 3 | 0 | NULL | | sys | uniqueidentifier | 1 | 4 | 16 | NULL | NULL | | sys | varbinary | 1 | 4 | 8000 | NULL | 1 | | sys | varchar | 1 | 4 | 8000 | NULL | 1 | | sys | xml | 1 | 4 | -1 | NULL | NULL | +----------+------------------+--------------+-----------+-------------+---------+----------------+
हालांकि ध्यान रखें कि sys.types में पहले से ही सटीकता और पैमाना होता है, इसलिए आप यह भी कर सकते हैं:
SELECT SCHEMA_NAME(schema_id) AS [Schema], name AS [Data Type], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'AllowsNull') AS [AllowsNull], TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId') AS [OwnerId], Precision, Scale, TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'UsesAnsiTrim') AS [UsesAnsiTrim] FROM sys.types ORDER BY name;
परिणाम:
+----------+------------------+--------------+-----------+-------------+---------+----------------+ | Schema | Data Type | AllowsNull | OwnerId | Precision | Scale | UsesAnsiTrim | |----------+------------------+--------------+-----------+-------------+---------+----------------| | sys | bigint | 1 | 4 | 19 | 0 | NULL | | sys | binary | 1 | 4 | 0 | 0 | 1 | | sys | bit | 1 | 4 | 1 | 0 | NULL | | sys | char | 1 | 4 | 0 | 0 | 1 | | dbo | clientcode | 0 | 1 | 0 | 0 | 1 | | sys | date | 1 | 4 | 10 | 0 | NULL | | sys | datetime | 1 | 4 | 23 | 3 | NULL | | sys | datetime2 | 1 | 4 | 27 | 7 | NULL | | sys | datetimeoffset | 1 | 4 | 34 | 7 | NULL | | sys | decimal | 1 | 4 | 38 | 38 | NULL | | sys | float | 1 | 4 | 53 | 0 | NULL | | sys | geography | 1 | 4 | 0 | 0 | NULL | | sys | geometry | 1 | 4 | 0 | 0 | NULL | | sys | hierarchyid | 1 | 4 | 0 | 0 | NULL | | sys | image | 1 | 4 | 0 | 0 | NULL | | sys | int | 1 | 4 | 10 | 0 | NULL | | sys | money | 1 | 4 | 19 | 4 | NULL | | sys | nchar | 1 | 4 | 0 | 0 | NULL | | sys | ntext | 1 | 4 | 0 | 0 | NULL | | sys | numeric | 1 | 4 | 38 | 38 | NULL | | sys | nvarchar | 1 | 4 | 0 | 0 | NULL | | sys | real | 1 | 4 | 24 | 0 | NULL | | sys | smalldatetime | 1 | 4 | 16 | 0 | NULL | | sys | smallint | 1 | 4 | 5 | 0 | NULL | | sys | smallmoney | 1 | 4 | 10 | 4 | NULL | | sys | sql_variant | 1 | 4 | 0 | 0 | 1 | | sys | sysname | 0 | 4 | 0 | 0 | NULL | | sys | text | 1 | 4 | 0 | 0 | NULL | | sys | time | 1 | 4 | 16 | 7 | NULL | | sys | timestamp | 0 | 4 | 0 | 0 | NULL | | sys | tinyint | 1 | 4 | 3 | 0 | NULL | | sys | uniqueidentifier | 1 | 4 | 0 | 0 | NULL | | sys | varbinary | 1 | 4 | 0 | 0 | 1 | | sys | varchar | 1 | 4 | 0 | 0 | 1 | | sys | xml | 1 | 4 | 0 | 0 | NULL | +----------+------------------+--------------+-----------+-------------+---------+----------------+