sys.objects (Transact-SQL) - SQL Server

sys.objects (Transact-SQL) - SQL Server

适用于: 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)

相关数据

嗞的解释
外勤365在线登录

嗞的解释

⌚ 08-31 👁️‍🗨️ 745
梅艳芳演的电影有哪些(盘点梅艳芳的10部经典电影)
game365体育投注

梅艳芳演的电影有哪些(盘点梅艳芳的10部经典电影)

⌚ 07-03 👁️‍🗨️ 7641