COL_LENGTH (Transact-SQL)

THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Returns the defined length, in bytes, of a column.

Topic link icon Transact-SQL Syntax Conventions

Syntax

COL_LENGTH ( 'table' , 'column' )   

Arguments

' table '
Is the name of the table for which to determine column length information. table is an expression of type nvarchar.

' column '
Is the name of the column for which to determine length. column is an expression of type nvarchar.

Return type

smallint

Exceptions

Returns NULL on error or if a caller does not have 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 may return NULL if the user does not have any permission on the object. For more information, see Metadata Visibility Configuration.

Remarks

For columns of type varchar declared with the max specifier (varchar(max)), COL_LENGTH returns the value –1.

Examples

The following example shows the return values for a column of type varchar(40) and a column of type nvarchar(40).

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  

See also

Expressions (Transact-SQL)
Metadata Functions (Transact-SQL)
COL_NAME (Transact-SQL)
COLUMNPROPERTY (Transact-SQL)