Поделиться через


COLUMNS (Transact-SQL)

Возвращает одну строку для каждого столбца, доступного для текущего пользователя в текущей базе данных.

Чтобы получить сведения из этих представлений, укажите полное имя INFORMATION_SCHEMA.view_name.

Имя столбца

Тип данных

Описание

TABLE_CATALOG

nvarchar(128)

Квалификатор таблицы.

TABLE_SCHEMA

nvarchar(128)

Имя схемы, содержащей таблицу.

Важное примечаниеВажно!
Не используйте представления INFORMATION_SCHEMA, чтобы определить схему объекта. Единственный надежный способ найти схему объекта — направить запрос к представлению каталога sys.objects.

TABLE_NAME

nvarchar(128)

Имя таблицы.

COLUMN_NAME

nvarchar(128)

Имя столбца.

ORDINAL_POSITION

int

Идентификационный номер столбца.

COLUMN_DEFAULT

nvarchar(4000)

Значение столбца по умолчанию.

SQL Server 2008 отличается от SQL Server 2000 способом расшифровки и хранения выражений SQL в метаданных каталога. Семантика расшифрованных выражений соответствует исходному тексту, однако правильность синтаксиса не гарантируется. Например, символы пробела удаляются из расшифрованного выражения. Дополнительные сведения см. в разделе Изменения в работе функций компонента Database Engine в SQL Server 2008 R2.

IS_NULLABLE

varchar(3)

Указывает, может ли столбец содержать значение NULL. Если для столбца допустимо значение NULL, этот столбец возвращает значение YES. Иначе возвращается значение NO.

DATA_TYPE

nvarchar(128)

Тип данных, поддерживаемый системой.

CHARACTER_MAXIMUM_LENGTH

int

Максимальная длина в символах для двоичных данных, символьных данных или текстовых данных и изображений.

Значение равно -1 для типа данных xml и большого типа-значения. Иначе возвращается значение NULL. Дополнительные сведения см. в разделе Типы данных (Transact-SQL).

CHARACTER_OCTET_LENGTH

int

Максимальная длина в байтах для двоичных данных, символьных данных или текстовых данных и изображений.

Значение -1 для типа данных xml и больших типов данных. Иначе возвращается значение NULL.

NUMERIC_PRECISION

tinyint

Точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.

NUMERIC_PRECISION_RADIX

smallint

Основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.

NUMERIC_SCALE

int

Масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.

DATETIME_PRECISION

smallint

Код подтипа для типов данных datetime и ISO interval. Для других типов данных возвращается значение NULL.

CHARACTER_SET_CATALOG

nvarchar(128)

Возвращает master. Показывает базу данных, в которой располагается кодировка, если в столбце содержатся записи символьного типа или типа text. Иначе возвращается значение NULL.

CHARACTER_SET_SCHEMA

nvarchar(128)

Всегда возвращает значение NULL.

CHARACTER_SET_NAME

nvarchar(128)

Возвращает уникальное имя для кодировки, если столбец содержит символьные данные или данные типа text. Иначе возвращается значение NULL.

COLLATION_CATALOG

nvarchar(128)

Всегда возвращает значение NULL.

COLLATION_SCHEMA

nvarchar(128)

Всегда возвращает значение NULL.

COLLATION_NAME

nvarchar(128)

Возвращает уникальное имя для параметров сортировки, если столбец содержит символьные данные или данные типа text. Иначе возвращается значение NULL.

DOMAIN_CATALOG

nvarchar(128)

Если столбец имеет тип данных псевдонима, то этот столбец содержит имя базы данных, в которой был создан определяемый пользователем тип данных. Иначе возвращается значение NULL.

DOMAIN_SCHEMA

nvarchar(128)

Если столбец имеет определяемый пользователем тип данных, то столбец возвращает имя схемы этого типа данных. Иначе возвращается значение NULL.

Важное примечаниеВажно!
Не используйте представления INFORMATION_SCHEMA, чтобы определить схему типа данных. Единственный надежный способ найти схему типа — использовать функцию TYPEPROPERTY.

DOMAIN_NAME

nvarchar(128)

Если столбец имеет определяемый пользователем тип данных, то столбец является именем этого типа данных. Иначе возвращается значение NULL.

Замечания

Столбец ORDINAL_POSITION представления INFORMATION_SCHEMA.COLUMNS не совместим с битовым шаблоном столбцов, возвращаемым функцией COLUMNS_UPDATED. Чтобы получить битовый шаблон, совместимый с COLUMNS_UPDATED, следует обратиться к свойству ColumnID системной функции COLUMNPROPERTY при запросе представления INFORMATION_SCHEMA.COLUMNS, как показано в следующем примере. Например:

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