--对象目录视图
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-catalog-views/object-catalog-views-transact-sql?view=sql-server-2017
--为每个数据库,包括本机编译标量用户定义函数中创建的用户定义的架构范围内对象对应一行
--sys.objects
--为 SQL Server 中的每个用户表返回一行
--sys.tables
--为包含列的对象(如视图或表)的每一列返回一行。 下面是包含列的对象类型的列表
--sys.columns
--与每个视图对象,一行sys.objects.type = V
--sys.views
--每个类型为 TR 或 TA 的触发器对象对应一行。 DML 触发器名称是架构范围内,并且因此,是在可见sys.objects。 DDL 触发器名称的作用域取决于父实体,只能在此视图中显示
--sys.triggers
--每个表格对象(例如,表、视图或表值函数)的索引或堆都包含一
--sys.indexes
--每一部分的列中对应一行sys.indexes索引或未排序的表 (堆)
--sys.index_columns
--每个对象,它与 FOREIGN KEY 约束,存在对应的一行sys.object.type = f
--sys.foreign_keys
--组成外键的每一列或列集在表中对应一行
--sys.foreign_key_columns
--作为标识列的每个列各占一行。Sys.identity_columns视图所继承中的行sys.columns视图。 Sys.identity_columns视图返回中的列sys.columns视图,再加上seed_value, increment_value, last_value,并is_not_for_replication列。
--sys.identity_columns
--使用包含 (而不是作为 CREATE DEFAULT 语句的 CREATE TABLE 或 ALTER TABLE 语句的一部分创建),该默认定义是每个对象的行sys.objects.type = d
--sys.default_constraints
--对于每个列中找到表中占一行sys.columns ,它是计算列
--sys.computed_columns
--与 CHECK 约束,每个对象存在对应的一行sys.objects.type = 'C'
--sys.check_constraints
select OBJECT_NAME(object_id),* from sys.identity_columns
--系统信息架构视图
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-information-schema-views/system-information-schema-views-transact-sql?view=sql-server-2017
--为当前数据库中当前用户可访问的每一列返回一行
--INFORMATION_SCHEMA.COLUMNS
--为其当前用户有权限在当前数据库中返回的每个表或视图的一行
--INFORMATION_SCHEMA.TABLES
--对于当前数据库中定义了约束的每个表,相应地返回一行。 该信息架构视图返回当前用户对其拥有权限的对象的相关信息
--INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
--针对当前数据库中作为键约束的每个列返回一行。 该信息架构视图返回当前用户对其拥有权限的对象的相关信息。
--INFORMATION_SCHEMA.KEY_COLUMN_USAGE
--为当前数据库中的当前用户可访问的视图返回一行
--INFORMATION_SCHEMA.VIEWS
--针对当前数据库的每个 CHECK 约束返回一行。 该信息架构视图返回当前用户对其拥有权限的对象的相关信息
--INFORMATION_SCHEMA.CHECK_CONSTRAINTS
--为当前数据库中的每个架构返回一行。 若要从这些视图检索信息,请指定完全限定的名称INFORMATION_SCHEMA
--INFORMATION_SCHEMA.SCHEMATA