COLUMNPROPERTY (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Esta función devuelve información de la columna o el parámetro.

Convenciones de sintaxis de Transact-SQL

Sintaxis

COLUMNPROPERTY ( id , column , property )   

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

id
Una expresión que contiene el identificador (Id.) de la tabla o del procedimiento.

column
Una expresión que contiene el nombre de la columna o del parámetro.

property
Para el argumento id, el argumento propiedad especifica el tipo de información que devolverá la función COLUMNPROPERTY. El argumento propiedad puede tener uno de estos valores:

Value Descripción Valor devuelto
AllowsNull Permite valores NULL. 1: TRUE

0: FALSE

NULL: entrada no válida
ColumnId Valor del Id. de columna correspondiente a sys.columns.column_id. Identificador de columna

Nota: Cuando se consultan varias columnas, pueden aparecer espacios en la secuencia de valores de los Id. de columna.
FullTextTypeColumn El valor TYPE COLUMN de la tabla que contiene la información del tipo de documento de la columna. Id. de TYPE COLUMN de texto completo para la expresión de nombre de columna que se pasa como segundo parámetro de esta función.
GeneratedAlwaysType Es el valor de columna generado por el sistema. Corresponde a sys.columns.generated_always_type Válido para : SQL Server 2016 (13.x) y versiones posteriores.

0: no siempre se genera.

1: se genera siempre como comienzo de fila.

2: se genera siempre como fin de fila.
IsColumnSet La columna es un conjunto de columnas. Para obtener más información, vea Usar conjuntos de columnas. 1: TRUE

0: FALSE

NULL: entrada no válida
IsComputed La columna es una columna calculada. 1: TRUE

0: FALSE

NULL: entrada no válida
IsCursorType El parámetro de procedimiento es del tipo CURSOR. 1: TRUE

0: FALSE

NULL: entrada no válida
IsDeterministic La columna es determinista. Esta propiedad solo se aplica a columnas calculadas y columnas de vistas. 1: TRUE

0: FALSE

NULL: entrada no válida No es una columna calculada o una columna de vista.
IsFulltextIndexed La columna se registra para la indización de texto completo. 1: TRUE

0: FALSE

NULL: entrada no válida
IsHidden Es el valor de columna generado por el sistema. Corresponde a sys.columns.is_hidden Válido para : SQL Server 2016 (13.x) y versiones posteriores.

0: no está oculto

1: oculto
IsIdentity La columna utiliza la propiedad IDENTITY. 1: TRUE

0: FALSE

NULL: entrada no válida
IsIdNotForRepl La columna comprueba el valor IDENTITY_INSERT. 1: TRUE

0: FALSE

NULL: entrada no válida
IsIndexable La columna se puede indizar. 1: TRUE

0: FALSE

NULL: entrada no válida
IsOutParam El parámetro de procedimiento es un parámetro de salida. 1: TRUE

0: FALSE

NULL: entrada no válida
IsPrecise La columna es precisa. Esta propiedad solo se aplica a columnas deterministas. 1: TRUE

0: FALSE

NULL: entrada no válida No es una columna determinista
IsRowGuidCol La columna es del tipo de datos uniqueidentifier y se define con la propiedad ROWGUIDCOL. 1: TRUE

0: FALSE

NULL: entrada no válida
IsSparse La columna es una columna dispersa. Para obtener más información, vea Usar columnas dispersas. 1: TRUE

0: FALSE

NULL: entrada no válida
IsSystemVerified El Motor de base de datos puede comprobar las propiedades de determinismo y precisión de la columna. Esta propiedad solo se aplica a columnas calculadas y columnas de vistas. 1: TRUE

0: FALSE

NULL: entrada no válida
IsXmlIndexable La columna XML se puede utilizar en un índice XML. 1: TRUE

0: FALSE

NULL: entrada no válida
Precisión Longitud del tipo de datos de la columna o el parámetro. Longitud del tipo de datos especificado para la columna

-1: xml o tipos de valor grandes

NULL: entrada no válida
Escala Escala del tipo de datos de la columna o del parámetro. El valor de escala.

NULL: entrada no válida
StatisticalSemantics La columna está habilitada para la indización semántica. 1: TRUE

0: FALSE
SystemDataAccess La columna se deriva de una función que tiene acceso a los datos de los catálogos del sistema o de las tablas virtuales del sistema de SQL Server. Esta propiedad solo se aplica a columnas calculadas y columnas de vistas. 1: TRUE (indica acceso de solo lectura)

0: FALSE

NULL: entrada no válida
UserDataAccess La columna se deriva de una función que tiene acceso a los datos de las tablas de usuario, incluidas las vistas y tablas temporales, almacenadas en la instancia local de SQL Server. Esta propiedad solo se aplica a columnas calculadas y columnas de vistas. 1: TRUE (indica acceso de solo lectura)

0: FALSE

NULL: entrada no válida
UsesAnsiTrim ANSI_PADDING se estableció em ON al crear la tabla. Esta propiedad solo se aplica a columnas o parámetros de tipo char o varchar. 1: TRUE

0: FALSE

NULL: entrada no válida

Tipos de valores devueltos

int

Excepciones

Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.

Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas de emisión de metadatos, como COLUMNPROPERTY, es posible que devuelvan NULL si el usuario no tiene el permiso correcto para el objeto. Vea Configuración de visibilidad de los metadatos para obtener más información.

Observaciones

Cuando se comprueba la propiedad determinista de una columna, primero se comprueba si se trata de una columna calculada. El argumento IsDeterministic devuelve NULL para las columnas no calculadas. Las columnas calculadas se pueden especificar como columnas de índice.

Ejemplos

En este ejemplo se devuelve la longitud de la columna LastName.

USE AdventureWorks2022;  
GO  
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';  
GO  

El conjunto de resultados es el siguiente:

Column Length
-------------
50

Consulte también

Funciones de metadatos (Transact-SQL)
TYPEPROPERTY (Transact-SQL)