COL_LENGTH (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance
This function returns the defined length of a column, in bytes.
Transact-SQL syntax conventions
Syntax
COL_LENGTH ( 'table' , 'column' )
Arguments
' 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.
Return type
smallint
Exceptions
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.
Remarks
For varchar columns declared with the max specifier (varchar(max)), COL_LENGTH returns the value -1.
Examples
This example shows the return values for a column of type varchar(40)
and a column of type nvarchar(40)
:
USE AdventureWorks2022;
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's the result set.
VarChar NVarChar
40 80
See also
Expressions (Transact-SQL)
Metadata Functions (Transact-SQL)
COL_NAME (Transact-SQL)
COLUMNPROPERTY (Transact-SQL)