适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
包含在数据库中创建的每个用户定义的架构范围内的对象的行,包括本地编译的标量用户定义函数。
有关详细信息,请参阅内存中 OLTP 的标量用户定义函数。
注意
sys.objects 不显示 DDL 触发器,因为它们不是架构范围的。 所有触发器(包括 DML 和 DDL)均位于 sys.triggers 中。 sys.triggers 支持对各种触发器应用混合名称范围规则。
列名称
数据类型
描述
name
sysname
对象名称。
object_id
int
对象标识号。 在数据库中是唯一的。
principal_id
int
如果不是架构所有者,则为单个所有者的 ID。 默认情况下,架构包含的对象由架构所有者拥有。 但是,可以使用语句更改所有权来指定 ALTER AUTHORIZATION 备用所有者。NULL 如果没有备用的个人所有者。对象 NULL 类型是否为以下值之一:C = 检查约束D = 默认值(约束或独立)F = 外键约束PK = 主键约束R = 规则 (旧样式, 独立)TA = 程序集 (CLR-integration) 触发器TR = SQL 触发器UQ = 唯一约束EC = Edge 约束
schema_id
int
包含该对象的架构的 ID。架构范围内的系统对象始终包含在 sys 或 INFORMATION_SCHEMA 架构中。
parent_object_id
int
此对象所属对象的 ID。0 = 不是子对象。
type
char(2)
对象类型:AF = 聚合函数 (CLR)C = 检查约束D = 默认值(约束或独立)F = 外键约束FN = SQL 标量函数FS = Assembly (CLR) scalar-functionFT = 程序集 (CLR) 表值函数IF = SQL 内联表值函数 (TVF)IT = 内部表P = SQL 存储过程PC = 程序集 (CLR) 存储过程PG = 计划指南PK = 主键约束R = 规则 (旧样式, 独立)RF = Replication-filter-procedureS = 系统基表SN = 同义词SO = Sequence 对象U = 表(用户定义的)V = 视图适用于:SQL Server 2012 (11.x) 及更高版本SQ = 服务队列TA = 程序集 (CLR) DML 触发器TF = SQL table-valued-function (TVF)TR = SQL DML 触发器TT = 表类型UQ = 唯一约束X = 扩展存储过程适用于:SQL Server 2014(12.x)及更高版本、Azure SQL 数据库、Azure Synapse Analytics、Analytics 平台系统(PDW)ST = 统计信息树适用于:SQL Server 2016(13.x)及更高版本、Azure SQL 数据库、Azure Synapse Analytics、Analytics Platform System (PDW)ET = 外部表适用于:SQL Server 2017(14.x)及更高版本、Azure SQL 数据库、Azure Synapse Analytics、Analytics 平台系统(PDW)EC = Edge 约束
type_desc
nvarchar(60)
对对象类型的说明:AGGREGATE_FUNCTIONCHECK_CONSTRAINTCLR_SCALAR_FUNCTIONCLR_STORED_PROCEDURECLR_TABLE_VALUED_FUNCTIONCLR_TRIGGERDEFAULT_CONSTRAINTEDGE_CONSTRAINTEXTENDED_STORED_PROCEDUREFOREIGN_KEY_CONSTRAINTINTERNAL_TABLEPLAN_GUIDEPRIMARY_KEY_CONSTRAINTREPLICATION_FILTER_PROCEDURERULESEQUENCE_OBJECTSERVICE_QUEUESQL_INLINE_TABLE_VALUED_FUNCTIONSQL_SCALAR_FUNCTIONSQL_STORED_PROCEDURESQL_TABLE_VALUED_FUNCTIONSQL_TRIGGERSYNONYMSYSTEM_TABLETYPE_TABLEUNIQUE_CONSTRAINTUSER_TABLEVIEW
create_date
datetime
对象的创建日期。
modify_date
datetime
上次使用 ALTER 语句修改对象的日期。 如果对象为表或视图,则创建或修改表或视图的索引时,modify_date 也会随之更改。
is_ms_shipped
bit
对象由内部 SQL Server 组件创建。
is_published
bit
对象为发布对象。
is_schema_published
bit
仅发布对象的架构。
注解
可以将OBJECT_ID、OBJECT_NAME和 OBJECTPROPERTY 内置函数应用于中显示的sys.objects对象。
此视图的版本与显示系统对象的架构相同,称为 sys.system_objects。 另一个名为 sys.all_objects视图显示系统和用户对象。 所有这三个目录视图的结构都相同。
在此版本的 SQL Server 中,扩展索引(如 XML 索引或空间索引)被视为内部表(sys.objects是,也是INTERNAL_TABLEtype_desc)。ITtype 对于扩展索引:
name 是索引表的内部名称
parent_object_idobject_id是基表
is_ms_shipped、 is_published列 is_schema_published 和列设置为 0
相关系统视图
可以使用特定类型的对象的系统视图来查看对象的子集,例如:
sys.tables
sys.views
sys.procedures
权限
目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration。
示例
A. 返回在过去 N 天内修改的所有对象
运行以下查询之前,请使用有效值替换
USE
GO
SELECT name AS object_name,
SCHEMA_NAME(schema_id) AS schema_name,
type_desc,
create_date,
modify_date
FROM sys.objects
WHERE modify_date > GETDATE() -
ORDER BY modify_date;
GO
B. 返回指定存储过程或函数的参数
运行以下查询之前,请使用有效名称替换
USE
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name,
o.name AS object_name,
o.type_desc,
p.parameter_id,
p.name AS parameter_name,
TYPE_NAME(p.user_type_id) AS parameter_type,
p.max_length,
p.precision,
p.scale,
p.is_output
FROM sys.objects AS o
INNER JOIN sys.parameters AS p
ON o.object_id = p.object_id
WHERE o.object_id = OBJECT_ID('
ORDER BY schema_name,
object_name,
p.parameter_id;
GO
C. 返回数据库中的所有用户定义函数
运行以下查询之前,请使用有效数据库名称替换
USE
GO
SELECT name AS function_name,
SCHEMA_NAME(schema_id) AS schema_name,
type_desc,
create_date,
modify_date
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION%';
GO
D. 返回架构中每个对象的所有者
运行以下查询之前,请使用有效名称替换所有的
USE
GO
SELECT 'OBJECT' AS entity_type,
USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name,
name
FROM sys.objects
WHERE SCHEMA_NAME(schema_id) = '
UNION
SELECT 'TYPE' AS entity_type,
USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name,
name
FROM sys.types
WHERE SCHEMA_NAME(schema_id) = '
UNION
SELECT 'XML SCHEMA COLLECTION' AS entity_type,
COALESCE(USER_NAME(xsc.principal_id), USER_NAME(s.principal_id)) AS owner_name,
xsc.name
FROM sys.xml_schema_collections AS xsc
INNER JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '
GO
相关内容
系统目录视图 (Transact-SQL)
sys.all_objects (Transact-SQL)
sys.system_objects (Transact-SQL)
sys.triggers (Transact-SQL)
对象目录视图 (Transact-SQL)
查询 SQL Server 系统目录常见问题
sys.internal_tables (Transact-SQL)