Applies to: SQL Server (all supported versions) Azure SQL Database Azure SQL Managed Instance
This function returns the defined length of a column, in bytes.
COL_LENGTH ( 'table' , 'column' )
To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.
' table '
The name of the table whose column length information we want to determine. table is an expression of type nvarchar.
' column '
The column name whose length we want to determine. column is an expression of type nvarchar.
Returns NULL on error, or if a caller does not have the correct permission to view the object.
In SQL Server, a user can only view the metadata of securables that the user owns, or on which the user has been granted permission. This means that metadata-emitting, built-in functions such as COL_LENGTH might return NULL, if the user does not have correct permission on the object. See Metadata Visibility Configuration for more information.
For varchar columns declared with the max specifier (varchar(max)), COL_LENGTH returns the value -1.
This example shows the return values for a column of type
varchar(40) and a column of type
USE AdventureWorks2012; GO CREATE TABLE t1(c1 VARCHAR(40), c2 NVARCHAR(40) ); GO SELECT COL_LENGTH('t1','c1')AS 'VarChar', COL_LENGTH('t1','c2')AS 'NVarChar'; GO DROP TABLE t1;
Here is the result set.
VarChar NVarChar 40 80