COLUMNPROPERTY

Returns information about a column or parameter.

Syntax

COLUMNPROPERTY ( id, 'column', 'property' )

Arguments

id

Is an expression that contains the identifier (ID) of the table or procedure.

column

Is an expression that contains the name of the column or parameter.

property

Is an expression that contains the information to be returned for id, and can be any one of the following values.

Value

Description

Value returned

AllowsNull

Allows null values.

1 = TRUE 0 = FALSE NULL = Input is not valid.

ColumnId

Column ID value corresponding to sys.columns.column_id.

Column ID Note: When querying multiple columns, gaps may appear in the sequence of Column ID values.

FullTextTypeColumn

The TYPE COLUMN in the table that holds the document type information of the column.

ID of the full=text TYPE COLUMN for the column passed as the second parameter of this property.

IsComputed

Column is a computed column.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsCursorType

Procedure parameter is of type CURSOR.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsDeterministic

Column is deterministic. This property applies only to computed columns and view columns.

1 = TRUE 0 = FALSE NULL = Input is not valid. Not a computed column or view column.

IsFulltextIndexed

Column has been registered for full-text indexing.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsIdentity

Column uses the IDENTITY property.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsIdNotForRepl

Column checks for the IDENTITY_INSERT setting.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsIndexable

Column can be indexed.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsOutParam

Procedure parameter is an output parameter.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsPrecise

Column is precise. This property applies only to deterministic columns.

1 = TRUE 0 = FALSE NULL = Input is not valid. Not a deterministic column

IsRowGuidCol

Column has the uniqueidentifier data type and is defined with the ROWGUIDCOL property.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsSystemVerified

The determinism and precision properties of the column can be verified by the engine. This property applies only to computed columns and columns of views.

1 = TRUE 0 = FALSE NULL = Input is not valid.

IsXmlIndexable

The XML column can be used in an XML index.

1 = TRUE 0 = FALSE NULL = Input is not valid.

Precision

Length for the data type of the column or parameter.

The length of the specified column data type -1 = xml or large value types NULL = Input is not valid.

Scale

Scale for the data type of the column or parameter.

The scale NULL = Input is not valid.

StatisticalSemantics

Column is enabled for semantic indexing.

1 = TRUE 0 = FALSE

SystemDataAccess

Column is derived from a function that accesses data in the system catalogs or virtual system tables of engine instance. This property applies only to computed columns and columns of views.

1 = TRUE (Indicates read-only access.) 0 = FALSE 0 = FALSE NULL = Input is not valid.

UserDataAccess

Column is derived from a function that accesses data in user tables, including views and temporary tables, stored in the local engine instance. This property applies only to computed columns and columns of views.

1 = TRUE (Indicates read-only access.) 0 = FALSE NULL = Input is not valid.

UsesAnsiTrim

ANSI_PADDING was set ON when the table was first created. This property applies only to columns or parameters of type char or varchar.

1= TRUE 0= FALSE NULL = Input is not valid.

IsSparse

Column is a sparse column. For more information, see Use Sparse Columns.

1= TRUE 0= FALSE NULL = Input is not valid.

IsColumnSet

Column is a column set. For more information, see Use Column Sets.

1= TRUE 0= FALSE NULL = Input is not valid.

Return types

int

Example

SELECT COLUMNPROPERTY( OBJECT_ID('dbo.Customers')
                    , 'LastName'
                    , 'PRECISION') AS 'Column Length'
;

See Also