sys.columns
为包含列的对象(如视图或表)的每列返回一行。下面是包含列的对象类型的列表。
- 表值程序集函数 (FT)
- 内联表值 SQL 函数 (IF)
- 内部表 (IT)
- 系统表 (S)
- 表值 SQL 函数 (TF)
- 用户表 (U)
- 视图 (V)
列名 数据类型 说明
object_id
int
此列所属对象的 ID。
name
sysname
列名。在对象中是唯一的。
column_id
int
列的 ID。在对象中是唯一的。
列 ID 可以不按顺序排列。
system_type_id
tinyint
列的系统类型的 ID。
user_type_id
int
用户定义的列类型的 ID。
若要返回该类型的名称,请在该列中联接到 sys.types 目录视图。
max_length
smallint
列的最大长度(字节)。
-1 = 列数据类型为 varchar(max)、nvarchar(max)、varbinary(max) 或 xml。
对于 text 列,max_length 值将是 16,或者是 sp_tableoption 'text in row' 所设置的值。
precision
tinyint
如果列包含的是数值,则为该列的精度;否则为 0。
scale
tinyint
如果基于数值,则为列的小数位数;否则为 0。
collation_name
sysname
如果列包含的是字符,则为该列排序规则的名称;否则为 NULL。
is_nullable
bit
1 = 列可为空。
is_ansi_padded
bit
1 = 如果列为字符、二进制或变量类型,则该列使用 ANSI_PADDING ON 行为。
0 = 列不是字符、二进制或变量类型。
is_rowguidcol
bit
1 = 列为声明的 ROWGUIDCOL。
is_identity
bit
1 = 列具有标识值
is_computed
bit
1 = 列为计算列。
is_filestream
bit
保留供将来使用。
is_replicated
bit
1 = 列已复制。
is_non_sql_subscribed
bit
1 = 列具有非 SQL Server 订阅服务器。
is_merge_published
bit
1 = 列已合并发布。
is_dts_replicated
bit
1 = 使用 SQL Server 2005 Integration Services (SSIS) 复制列。
is_xml_document
bit
1 = 内容为完整的 XML 文档。
0 = 内容是文档片段或列数据类型不是 xml。
xml_collection_id
int
如果列是 xml 且已键入 XML,则为非零。该值将为包含列的验证 XML 架构命名空间的集合的 ID。
0 = 没有 XML 架构集合。
default_object_id
int
默认对象的 ID,无论它是独立对象 sys.sp_bindefault 还是内联列级 DEFAULT 约束。内联列级默认对象的 parent_object_id 列是对该表本身的反引用。
0 = 无默认值。
rule_object_id
int
使用 sys.sp_bindrule 绑定到列的独立规则的 ID。
0 = 无独立规则。有关列级 CHECK 约束的信息,请参阅 sys.check_constraints (Transact-SQL)。
为包含列的对象(如视图或表)的每列返回一行。下面是包含列的对象类型的列表。
- 表值程序集函数 (FT)
- 内联表值 SQL 函数 (IF)
- 内部表 (IT)
- 系统表 (S)
- 表值 SQL 函数 (TF)
- 用户表 (U)
- 视图 (V)
object_id
int
此列所属对象的 ID。
name
sysname
列名。在对象中是唯一的。
column_id
int
列的 ID。在对象中是唯一的。
列 ID 可以不按顺序排列。
system_type_id
tinyint
列的系统类型的 ID。
user_type_id
int
用户定义的列类型的 ID。
若要返回该类型的名称,请在该列中联接到 sys.types 目录视图。
max_length
smallint
列的最大长度(字节)。
-1 = 列数据类型为 varchar(max)、nvarchar(max)、varbinary(max) 或 xml。
对于 text 列,max_length 值将是 16,或者是 sp_tableoption 'text in row' 所设置的值。
precision
tinyint
如果列包含的是数值,则为该列的精度;否则为 0。
scale
tinyint
如果基于数值,则为列的小数位数;否则为 0。
collation_name
sysname
如果列包含的是字符,则为该列排序规则的名称;否则为 NULL。
is_nullable
bit
1 = 列可为空。
is_ansi_padded
bit
1 = 如果列为字符、二进制或变量类型,则该列使用 ANSI_PADDING ON 行为。
0 = 列不是字符、二进制或变量类型。
is_rowguidcol
bit
1 = 列为声明的 ROWGUIDCOL。
is_identity
bit
1 = 列具有标识值
is_computed
bit
1 = 列为计算列。
is_filestream
bit
保留供将来使用。
is_replicated
bit
1 = 列已复制。
is_non_sql_subscribed
bit
1 = 列具有非 SQL Server 订阅服务器。
is_merge_published
bit
1 = 列已合并发布。
is_dts_replicated
bit
1 = 使用 SQL Server 2005 Integration Services (SSIS) 复制列。
is_xml_document
bit
1 = 内容为完整的 XML 文档。
0 = 内容是文档片段或列数据类型不是 xml。
xml_collection_id
int
如果列是 xml 且已键入 XML,则为非零。该值将为包含列的验证 XML 架构命名空间的集合的 ID。
0 = 没有 XML 架构集合。
default_object_id
int
默认对象的 ID,无论它是独立对象 sys.sp_bindefault 还是内联列级 DEFAULT 约束。内联列级默认对象的 parent_object_id 列是对该表本身的反引用。
0 = 无默认值。
rule_object_id
int
使用 sys.sp_bindrule 绑定到列的独立规则的 ID。
0 = 无独立规则。有关列级 CHECK 约束的信息,请参阅 sys.check_constraints (Transact-SQL)。