COLUMNS (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

为当前数据库中当前用户可访问的每一列返回一行。

若要从这些视图中检索信息,请指定INFORMATION_SCHEMA.view_name完全限定名称。

列名称 数据类型 说明
TABLE_CATALOG nvarchar(128) 表限定符。
TABLE_SCHEMA nvarchar(128) 包含该表的架构的名称。

重要说明:请勿使用 INFORMATION_SCHEMA 视图来确定对象的架构。 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 二进制数据、字符数据或文本和图像数据的最大长度(字符)。

-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 日期时间和 ISO 间隔数据类型的子类型代码。 对于其他数据类型,返回 NULL。
CHARACTER_SET_CATALOG nvarchar(128) 返回 主控形状。 这表示字符集所在的数据库(如果列是字符数据或 文本 数据类型)。 否则,返回 NULL。
CHARACTER_SET_SCHEMA nvarchar(128) 始终返回 NULL。
CHARACTER_SET_NAME nvarchar(128) 如果此列是字符数据或 文本 数据类型,则返回字符集的唯一名称。 否则,返回 NULL。
COLLATION_CATALOG nvarchar(128) 始终返回 NULL。
COLLATION_SCHEMA nvarchar(128) 始终返回 NULL。
COLLATION_NAME nvarchar(128) 如果列是字符数据或 文本 数据类型,则返回排序规则的唯一名称。 否则,返回 NULL。
DOMAIN_CATALOG nvarchar(128) 如果此列是别名数据类型,则此列是在其中创建用户定义数据类型的数据库的名称。 否则,返回 NULL。
DOMAIN_SCHEMA nvarchar(128) 如果列是用户定义数据类型,则此列将返回该用户定义数据类型的架构名称。 否则,返回 NULL。

重要说明: 不要使用INFORMATION_SCHEMA视图来确定数据类型的架构。 查找类型的架构的唯一可靠方式是使用 TYPEPROPERTY 函数。
DOMAIN_NAME nvarchar(128) 如果列是用户定义数据类型,则此列是该用户定义数据类型的名称。 否则,返回 NULL。

注解

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

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

另请参阅