COLUMNS (Transact-SQL)

Devuelve una fila por cada columna a la que puede tener acceso el usuario actual en la base de datos actual.

Para recuperar información de estas vistas, especifique el nombre completo de INFORMATION_SCHEMA.view_name.

Nombre de columna

Tipo de datos

Descripción

TABLE_CATALOG

nvarchar(128)

Calificador de tabla.

TABLE_SCHEMA

nvarchar(128)

Nombre de esquema que contiene la tabla.

Nota importanteImportante
No utilice las vistas INFORMATION_SCHEMA para determinar el esquema de un objeto. La única manera confiable de localizar el esquema de un objeto consiste en consultar la vista de catálogo sys.objects.

TABLE_NAME

nvarchar(128)

Nombre de la tabla.

COLUMN_NAME

nvarchar(128)

Nombre de columna.

ORDINAL_POSITION

int

Número de identificación de columna.

COLUMN_DEFAULT

nvarchar(4000)

Valor predeterminado de la columna.

SQL Server 2008 se diferencia de SQL Server 2000 en la forma en que descodifica y almacena expresiones SQL en los metadatos del catálogo. La semántica de la expresión descodificada es equivalente al texto original; no obstante, no existen garantías sintácticas. Por ejemplo, los espacios en blanco se quitan de la expresión descodificada. Para obtener más información, vea Cambios de comportamiento en las características del Motor de base de datos en SQL Server 2008 R2.

IS_NULLABLE

varchar(3)

Nulabilidad de la columna. Si esta columna permite valores NULL, devuelve YES. En caso contrario devuelve NO.

DATA_TYPE

nvarchar(128)

Tipo de datos proporcionado por el sistema.

CHARACTER_MAXIMUM_LENGTH

int

Longitud máxima, en caracteres, de los datos binarios, de caracteres, de texto o de imagen.

-1 para xml y datos de tipo de valor grande. En caso contrario se devuelve NULL. Para obtener más información, vea Tipos de datos (Transact-SQL).

CHARACTER_OCTET_LENGTH

int

Longitud máxima, en bytes, para datos binarios, datos de caracteres o datos de texto e imagen.

-1 para xml y datos de tipo de valor grande. En caso contrario se devuelve NULL.

NUMERIC_PRECISION

tinyint

Precisión de los datos numéricos aproximados, datos numéricos exactos, datos enteros o datos de moneda. En caso contrario se devuelve NULL.

NUMERIC_PRECISION_RADIX

smallint

Base de la precisión de datos numéricos aproximados, datos numéricos exactos, datos enteros o datos monetarios. En caso contrario se devuelve NULL.

NUMERIC_SCALE

int

Escala de datos numéricos aproximados, datos numéricos exactos, datos enteros o datos monetarios. En caso contrario se devuelve NULL.

DATETIME_PRECISION

smallint

Código de subtipo para los tipos de datos datetime e interval ISO. Para los demás tipos de datos, se devuelve NULL.

CHARACTER_SET_CATALOG

nvarchar(128)

Devuelve master. Esto indica la base de datos donde está ubicado el juego de caracteres si la columna es de tipo de datos de caracteres o text. En caso contrario se devuelve NULL.

CHARACTER_SET_SCHEMA

nvarchar(128)

Siempre devuelve NULL.

CHARACTER_SET_NAME

nvarchar(128)

Devuelve el nombre único del juego de caracteres si esta columna es de tipo de datos de caracteres o text. En caso contrario se devuelve NULL.

COLLATION_CATALOG

nvarchar(128)

Siempre devuelve NULL.

COLLATION_SCHEMA

nvarchar(128)

Siempre devuelve NULL.

COLLATION_NAME

nvarchar(128)

Devuelve el nombre único de la intercalación si la columna es de tipo de datos de caracteres o text. En caso contrario se devuelve NULL.

DOMAIN_CATALOG

nvarchar(128)

Si la columna es de un tipo de datos de alias, esta columna es el nombre de la base de datos en que se creó el tipo de datos definido por el usuario. En caso contrario se devuelve NULL.

DOMAIN_SCHEMA

nvarchar(128)

Si la columna es de un tipo de datos definido por el usuario, devuelve el nombre del esquema del tipo de datos definido por el usuario. En caso contrario se devuelve NULL.

Nota importanteImportante
No utilice las vistas INFORMATION_SCHEMA para determinar el esquema de un tipo de datos. La única manera confiable de localizar el esquema de un tipo consiste en utilizar la función TYPEPROPERTY.

DOMAIN_NAME

nvarchar(128)

Si la columna es de un tipo de datos definido por el usuario, esta columna es el nombre del tipo de datos definido por el usuario. En caso contrario se devuelve NULL.

Comentarios

La columna ORDINAL_POSITION de la vista INFORMATION_SCHEMA.COLUMNS no es compatible con el patrón de bits de las columnas devueltas por la función COLUMNS_UPDATED. Para obtener un patrón de bits compatible con COLUMNS_UPDATED, es necesario hacer referencia a la propiedad ColumnID de la función del sistema COLUMNPROPERTY al realizar una consulta a la vista INFORMATION_SCHEMA.COLUMNS. Por ejemplo:

USE AdventureWorks2008R2;
GO
SELECT TABLE_NAME, COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks2008R2.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Person';
GO