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)

列的默认值。

IS_NULLABLE

varchar(3)

列的为空性。 如果列允许 NULL,则该列将返回 YES。 否则,返回 NO。

DATA_TYPE

nvarchar(128)

系统提供的数据类型。

CHARACTER_MAXIMUM_LENGTH

int

二进制数据、字符数据或文本和图像数据的最大长度(字符)。

对于 xml 和大值类型数据,为 -1。 否则,返回 NULL。 有关详细信息,请参阅数据类型 (Transact-SQL)

CHARACTER_OCTET_LENGTH

int

二进制数据、字符数据或文本和图像数据的最大长度(字节)。

对于 xml 和大值类型数据,为 -1。 否则,返回 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。

注释

INFORMATION_SCHEMA.COLUMNS 视图的 ORDINAL_POSITION 列与 COLUMNS_UPDATED 函数所返回列的位模式不兼容。 若要获取与 COLUMNS_UPDATED 兼容的位模式,在查询 INFORMATION_SCHEMA.COLUMNS 视图时必须引用 COLUMNPROPERTY 系统函数的 ColumnID 属性。 例如:

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

请参阅

参考

系统视图 (Transact-SQL)

信息架构视图 (Transact-SQL)

sys.syscharsets (Transact-SQL)

sys.columns (Transact-SQL)

sys.sql_modules (Transact-SQL)

sys.configurations (Transact-SQL)

sys.objects (Transact-SQL)

sys.types (Transact-SQL)

COLUMNS_UPDATED (Transact-SQL)