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 表达式进行解码和存储的方式不同于 SQL Server 2000。解码后的表达式的语义等同于原始文本,但是没有语法保证。例如,解码后的表达式中删除了空格。有关详细信息,请参阅 SQL Server 2008 R2 中数据库引擎功能的行为更改。 |
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 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