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

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

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           |
+----------+------------------+--------------+-----------+-------------+---------+----------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल में मूल्यों की सूची में कॉलम की तुलना करना

  2. SQL सर्वर 2016:हमेशा एन्क्रिप्टेड का प्रदर्शन प्रभाव

  3. तालिका के केवल एक कॉलम के आधार पर डुप्लिकेट मानों को हटाना

  4. SQL सर्वर में IIF () कैसे काम करता है

  5. SQL सर्वर में CONVERT () के साथ उपलब्ध दिनांक स्वरूपों की सूची