COLUMNPROPERTY (Transact-SQL)

Devuelve información acerca de una columna o de un parámetro de procedimiento.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

COLUMNPROPERTY ( id , column , property ) 

Argumentos

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

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

  • property
    Es una expresión que contiene la información que se devuelve para id y puede tener uno de los siguientes valores.

    Valor

    Descripción

    Valor devuelto

    AllowsNull

    Acepta valores NULL.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    ColumnId

    Valor del Id. de columna correspondiente a sys.columns.column_id.

    Id. de columna

    NotaNota
    Cuando se consultan varias columnas, pueden aparecer espacios en la secuencia de valores de los Id. de columna.

    FullTextTypeColumn

    TYPE COLUMN de la tabla que contiene la información del tipo de documento de column.

    Id. de TYPE COLUMN de texto de la columna pasada como segundo parámetro de esta propiedad.

    IsComputed

    La columna es una columna calculada.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    IsCursorType

    El parámetro de procedimiento es del tipo CURSOR.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    IsDeterministic

    La columna es determinista. Esta propiedad sólo se aplica a columnas calculadas y columnas de vistas.

    1 = Verdadero

    0 = FALSE

    NULL = La entrada no es válida. No es una columna calculada o una columna de vista.

    IsFulltextIndexed

    La columna se ha registrado para la indización de texto.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    IsIdentity

    La columna utiliza la propiedad IDENTITY.

    1 = Verdadero

    0 = FALSE o NULL = La entrada no es válida.

    IsIdNotForRepl

    La columna comprueba el valor IDENTITY_INSERT. Si se especifica IDENTITY NOT FOR REPLICATION, no se comprueba el valor IDENTITY_INSERT.

    1 = Verdadero

    0 = FALSE

    NULL = La entrada no es válida.

    IsIndexable

    La columna se puede indizar.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    IsOutParam

    El parámetro de procedimiento es un parámetro de salida.

    1 = Verdadero

    0 = FALSE o NULL = La entrada no es válida.

    IsPrecise

    La columna es precisa. Esta propiedad sólo se aplica a columnas deterministas.

    1 = Verdadero

    0 = FALSE o NULL = La entrada no es válida. No es una columna determinista

    IsRowGuidCol

    La columna es del tipo de datos uniqueidentifier y se ha definido con la propiedad ROWGUIDCOL.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    IsSystemVerified

    El Database Engine (Motor de base de datos) puede comprobar las propiedades de determinismo y precisión de la columna. Esta propiedad sólo se aplica a columnas calculadas y columnas de vistas.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    IsXmlIndexable

    La columna XML se puede utilizar en un índice XML.

    1 = Verdadero

    0 = Falso

    NULL = La entrada no es válida.

    Precision

    Longitud del tipo de datos de la columna o del parámetro.

    Longitud del tipo de datos especificado para la columna

    -1 = xml o tipos de valores grandes

    NULL = La entrada no es válida.

    Scale

    Escala del tipo de datos de la columna o del parámetro.

    Escala

    NULL = La entrada no es válida.

    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 sólo se aplica a columnas calculadas y columnas de vistas.

    1 = TRUE (indica acceso de sólo lectura)

    0 = Falso

    NULL = La entrada no es 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 sólo se aplica a columnas calculadas y columnas de vistas.

    1 = TRUE (indica acceso de sólo lectura)

    0 = Falso

    NULL = La entrada no es válida.

    UsesAnsiTrim

    ANSI_PADDING se estableció en ON la primera vez que se creó la tabla. Esta propiedad sólo se aplica a columnas o parámetros de tipo char o varchar.

    1= TRUE

    0= FALSE

    NULL = La entrada no es válida.

    IsSparse

    La columna es una columna dispersa. Para obtener más información, vea Usar columnas dispersas.

    1= TRUE

    0= FALSE

    NULL = La entrada no es válida.

    IsColumnSet

    La columna es un conjunto de columnas. Para obtener más información, vea Utilizar conjuntos de columnas.

    1= TRUE

    0= FALSE

    NULL = La entrada no es válida.

Tipos de valor devueltos

int

Excepciones

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

En SQL Server 2008, un usuario sólo puede ver los metadatos de asegurables que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas de emisión de metadatos, como COLUMNPROPERTY, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto. Para obtener más información, vea Configuración de visibilidad de los metadatos y Solucionar problemas de visibilidad de los metadatos.

Notas

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

Ejemplos

En el ejemplo siguiente se devuelve la longitud de la columna LastName.

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

Éste es el conjunto de resultados.

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

(1 row(s) affected)