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

विस्तारित TYPE_NAME फ़ंक्शन जिसमें डेटा लम्बाई शामिल है

एक कठिन शुरुआत कुछ इस तरह होगी:

CREATE FUNCTION udf_GetDataTypeAsString
    (
      @user_type_id INT ,
      @Length INT
    )
RETURNS VARCHAR(50)
AS 
    BEGIN
        DECLARE @ReturnStr VARCHAR(50)

        IF @Length = -1 
            SELECT  @ReturnStr = UPPER(name) + '(MAX)'
            FROM    sys.types
            WHERE   user_type_id = @user_type_id
        ELSE 
            SELECT  @ReturnStr = UPPER(name) + '(' + CONVERT(VARCHAR, @Length) + ')'
            FROM    sys.types
            WHERE   user_type_id = @user_type_id

        RETURN @ReturnStr

    END
GO

SELECT dbo.udf_GetDataTypeAsString(167, -1)
--#### Returns VARCHAR(MAX)
SELECT dbo.udf_GetDataTypeAsString(231, 24)
--#### Returns NVARCHAR(24)

ध्यान दें कि यह केवल चार डेटा प्रकारों के लिए वास्तव में अच्छा है और केवल लंबाई को संभालता है, यदि आप सटीक (दशमलव आदि) का उपयोग करना चाहते हैं तो आपको थोड़ा और तर्क लागू करना होगा

साथ ही, आप कुछ उपयोगकर्ता प्रकारों पर केवल -1 लंबाई की अनुमति देने के लिए सत्यापन जोड़ना चाह सकते हैं

(जिज्ञासा के लिए - आप ऐसा क्यों करना चाहते हैं?)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फ़ाइल के लिए स्वत:नामित डेटाबेस संलग्न करने का प्रयास ....database1.mdf विफल रहा

  2. LINQ से SQL तालिका से प्रत्येक Nth पंक्ति

  3. SQL सर्वर में सांख्यिकी XML क्या है?

  4. शामिल टेबल पर पिवट करें SQL सर्वर

  5. अस्थायी SQL डेटाफ़ील्ड