How to get the size of a varchar[n] field in one SQL statement?

后端 未结 8 1558
自闭症患者
自闭症患者 2020-11-29 01:20

Suppose that I have a SQL table that has a varchar[1000] field called \"Remarks\".

I would like to craft a single SQL statement, which when executed, will return 100

8条回答
  •  攒了一身酷
    2020-11-29 01:37

    This is a function for calculating max valid length for varchar(Nn):

    CREATE FUNCTION [dbo].[GetMaxVarcharColumnLength] (@TableSchema NVARCHAR(MAX), @TableName NVARCHAR(MAX), @ColumnName VARCHAR(MAX))
    RETURNS INT
    AS
    BEGIN
        RETURN (SELECT character_maximum_length FROM information_schema.columns  
                WHERE table_schema = @TableSchema AND table_name = @TableName AND column_name = @ColumnName);
    END
    

    Usage:

    IF LEN(@Name) > [dbo].[GetMaxVarcharColumnLength]('person', 'FamilyStateName', 'Name') 
                RETURN [dbo].[err_Internal_StringForVarcharTooLong]();
    

提交回复
热议问题