一、Database.sys.tables
为每个表对象返回一行,当前仅用于 sys.objects.type = U 的表对象。
列名 | 数据类型 | 说明 |
<继承的列> | 有关此视图所继承列的列表,请参阅sys.objects (Transact-SQL)。 | |
lob_data_space_id | int | 一个非零值,是保存此表的 text、ntext 和 image 数据的磁盘空间(文件组或分区架构)的 ID。 |
0 = 表不包含 text、ntext 或 image 数据。 | ||
filestream_data_space_id | int | 是 FILESTREAM 文件组或包含 FILESTREAM 文件组的分区方案的数据空间 ID。 |
若要报告 FILESTREAM 文件组的名称,请执行查询 SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables。 | ||
sys.tables 可以按 filestream_data_space_id = data_space_id 与下列视图联接。 | ||
sys.filegroups | ||
sys.partition_schemes | ||
sys.indexes | ||
sys.allocation_units | ||
sys.fulltext_catalogs | ||
sys.data_spaces | ||
sys.destination_data_spaces | ||
sys.master_files | ||
sys.database_files | ||
backupfilegroup(按 filegroup_id 联接) | ||
max_column_id_used | int | 此表曾使用的最大列 ID。 |
lock_on_bulk_load | bit | 表被锁定于大容量加载。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。 |
uses_ansi_nulls | bit | 创建表时,SET ANSI_NULLS 数据库选项设置为 ON。 |
is_replicated | bit | 1 = 使用快照复制或事务复制发布表。 |
has_replication_filter | bit | 1 = 表具有复制筛选器。 |
is_merge_published | bit | 1 = 使用合并复制发布表。 |
is_sync_tran_subscribed | bit | 1 = 使用立即更新订阅来订阅表。 |
has_unchecked_assembly_data | bit | 1 = 表包含的持久化数据依赖于上次 ALTER ASSEMBLY 期间其定义发生更改的程序集。在下一次成功执行 DBCC CHECKDB 或 DBCC CHECKTABLE 后将重置为 0。 |
text_in_row_limit | int | Text in row 的最大允许字节数。 |
0 = 未设置 Text in row 选项。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。 | ||
large_value_types_out_of_row | bit | 1 = 超行存储大值类型。有关详细信息,请参阅 sp_tableoption (Transact-SQL)。 |
is_tracked_by_cdc | bit | 1 = 为表启用变更数据捕获。有关详细信息,请参阅 sys.sp_cdc_enable_table (Transact-SQL)。 |
lock_escalation | tinyint | 表的 LOCK_ESCALATION 选项的值如下: |
0 = TABLE | ||
1 = DISABLE | ||
2 = AUTO | ||
lock_escalation_desc | nvarchar(60) | 表的 lock_escalation 选项的文本说明。可能的值有:TABLE、DISABLE 和 AUTO。 |
二、Database.sys.tables
显示属于用户定义对象和系统对象的所有列的联合。
列名 | 数据类型 | 说明 |
object_id | int | 此列所属对象的 ID。 |
name | sysname | 列的名称。 在对象中是唯一的。 |
column_id | int | 列的 ID。 在对象中是唯一的。 |
列 ID 可以不按顺序排列。 | ||
system_type_id | tinyint | 列的系统类型 ID。 |
user_type_id | int | 用户定义的列类型的 ID。 |
sys.types catalog view on this column.' data-guid="b0b47381e6de7b9b4c9a2d8419e6e4da">若要返回该类型的名称,请在该列中联接到 sys.types 目录视图。 | ||
max_length | smallint | 列的最大长度(字节)。 |
varchar(max), nvarchar(max), varbinary(max), or xml." data-guid="0c77804b7dd62539ef8a07509467c2a2">-1 = 列数据类型为varchar(max)、nvarchar(max)、varbinary(max) 或 xml。 | ||
text columns, the max_length value will be 16 or the value set by sp_tableoption 'text in row'." data-guid="98d994a86bf9798d86ac9709e4af7160">对于 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 | 1 = 列声明使用 Filestream 存储。 |
is_replicated | bit | 1 = 列已复制。 |
is_non_sql_subscribed | bit | 1 = 列具有非 SQL Server 订阅服务器。 |
is_merge_published | bit | 1 = 列已合并发布。 |
is_dts_replicated | bit | 1 = 使用 SSIS 复制列。 |
is_xml_document | bit | 1 = 内容为完整的 XML 文档。 |
0 = 内容是文档片段,或列的数据类型不是 XML。 | ||
xml_collection_id | int | xml and the XML is typed." data-guid="311ce97a424bdda8c74254759fd38936">如果列是 xml 并且已键入 XML,则其值为非零值。 该值将是包含列的验证 XML 架构命名空间的集合的 ID。 |
0 = 没有 XML 架构集合。 | ||
default_object_id | int | sys.sp_bindefault, or an in-line, column-level DEFAULT constraint.' data-guid="afbc8a31feda9962fdda53edf35a0b83">默认对象的 ID,无论该对象是独立的 sys.sp_bindefault 还是内联的列级 DEFAULT 约束。 内联列级默认对象的 parent_object_id 列是对该表本身的反引用。 |
0 = 无默认值。 | ||
rule_object_id | int | sys.sp_bindrule. ' data-guid="0bb3f24933b0f4c57475ea0934d6695c">使用 sys.sp_bindrule 绑定到列的独立规则的 ID。 |
0 = 无独立规则。 | ||
sys.check_constraints (Transact-SQL).' data-guid="e337ec327bbb0ba2240080ad6290d96d">有关列级 CHECK 约束,请参阅 sys.check_constraints (Transact-SQL)。 | ||
is_sparse | bit | 1 = 列为稀疏列。 有关详细信息,请参阅使用稀疏列。 |
is_column_set | bit | 1 = 列为列集。 有关详细信息,请参阅使用列集。 |
三、type_name
TYPE_NAME ( type_id )
返回指定类型 ID 的未限定的类型名称。
可以使用sys.types表达到同样效果:Select * From Sys.types
四、SQL 语句
Select
A.name As 'Table Name', B.name As 'Column Name',
type_name(B.user_type_id) As 'Data Type', B.max_length,
B.precision, scale, is_nullable, is_identity From sys.tables A Left Join sys.all_columns B On A.object_id = B.object_id Order By A.object_id,B.column_id