sys.objects (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Содержит по одной строке для каждого определяемого пользователем объекта области схемы, который создается в базе данных, включая скомпилированную в собственном виде скалярную определяемую пользователем функцию.

Дополнительные сведения см. в разделе Скалярные определяемые пользователем функции для выполняющейся в памяти OLTP.

Примечание

Представление sys.objects не показывает триггеры DDL, так как они не принадлежат области схемы. Все триггеры, DML и DDL, находятся в представлении sys. triggers. sys. triggers поддерживает смесь правил области имен для различных типов триггеров.

Имя столбца Тип данных Описание
name sysname Имя объекта.
object_id int Идентификационный номер объекта. Уникален в базе данных.
principal_id int Идентификатор отдельного владельца, если он отличается от владельца схемы. По умолчанию содержащиеся в схеме объекты принадлежат владельцу схемы. Однако с помощью инструкции ALTER AUTHORIZATION можно изменить право собственности и указать другого владельца.

Принимает значение NULL, если нет альтернативного отдельного владельца.

Имеет значение NULL, если типом объекта является один из следующих:

C = ограничение CHECK

D = значение по умолчанию (DEFAULT), в ограничении или независимо заданное

F = ограничение FOREIGN KEY

PK = ограничение PRIMARY KEY

R = правило (старый стиль, изолированный)

TA = триггер сборки (интеграция со средой CLR)

TR = триггер SQL

UQ = ограничение UNIQUE

EC = ограничение ребра
schema_id int Идентификатор схемы, в которой содержится объект.

Системные объекты области схемы всегда содержатся в схемах sys или INFORMATION_SCHEMA.
parent_object_id int Идентификатор объекта, которому принадлежит данный объект.

0 = не дочерний объект
type char(2) Тип объекта:

AF = агрегатная функция (среда CLR)

C = ограничение CHECK

D = значение по умолчанию (DEFAULT), в ограничении или независимо заданное

F = ограничение FOREIGN KEY

FN = скалярная функция SQL

FS = скалярная функция сборки (среда CLR)

FT = функция сборки (среда CLR) с табличным значением

IF = встроенная функция SQL с табличным значением

IT = внутренняя таблица

P = хранимая процедура SQL

PC = хранимая процедура сборки (среда CLR)

PG = структура плана

PK = ограничение PRIMARY KEY

R = правило (старый стиль, изолированный)

RF = процедура фильтра репликации

S = системная базовая таблица

SN = синоним

SO = объект последовательности

U = таблица (пользовательская)

V = представление

EC = ограничение ребра



Область применения: SQL Server 2012 (11.x) и более поздних версий.

SQ = очередь обслуживания

TA = триггер DML сборки (среда CLR)

TF = возвращающая табличное значение функция SQL

TR = триггер DML SQL

TT = табличный тип

UQ = ограничение UNIQUE

X = расширенная хранимая процедура



Применимо к: SQL Server 2014 (12.x) и более поздним версиям,, База данных SQL Azure Azure Synapse Analytics , Система платформы аналитики (PDW) .

ST = STATS_TREE



Применимо к: SQL Server 2016 (13.x); и более поздним версиям,, База данных SQL Azure Azure Synapse Analytics , Система платформы аналитики (PDW) .

ET = внешняя таблица
type_desc nvarchar(60) Описание типа объекта:

AGGREGATE_FUNCTION

CHECK_CONSTRAINT

CLR_SCALAR_FUNCTION

CLR_STORED_PROCEDURE

CLR_TABLE_VALUED_FUNCTION

CLR_TRIGGER

DEFAULT_CONSTRAINT

EXTENDED_STORED_PROCEDURE

FOREIGN_KEY_CONSTRAINT

INTERNAL_TABLE

PLAN_GUIDE

PRIMARY_KEY_CONSTRAINT

REPLICATION_FILTER_PROCEDURE

RULE

SEQUENCE_OBJECT



Область применения: SQL Server 2012 (11.x) и более поздних версий.

SERVICE_QUEUE

SQL_INLINE_TABLE_VALUED_FUNCTION

SQL_SCALAR_FUNCTION

SQL_STORED_PROCEDURE

SQL_TABLE_VALUED_FUNCTION

SQL_TRIGGER

SYNONYM

SYSTEM_TABLE

TABLE_TYPE

UNIQUE_CONSTRAINT

USER_TABLE

VIEW
create_date datetime Дата создания объекта.
modify_date datetime Дата последнего изменения объекта с помощью инструкции ALTER. Если объект является таблицей или представлением, modify_date также изменяется при создании или изменении индекса в таблице или представлении.
is_ms_shipped bit Объект создан внутренним компонентом SQL Server.
is_published bit Объект опубликован.
is_schema_published bit Опубликована только схема объекта.

Remarks

К объектам, отображаемым в представлении sys. Objects, можно применить встроенные функции object_id, object_nameи OBJECTPROPERTY().

Существует версия этого представления с той же схемой, которая называется sys.system_objects, которая показывает системные объекты. Существует другое представление, именуемое sys.all_objects , которое показывает как системные, так и пользовательские объекты. Все три представления каталогов имеют одну и ту же структуру.

В этой версии SQL Server расширенный индекс, такой как XML-индекс или пространственный индекс, считается внутренней таблицей в sys.objects (type = IT, а type_desc = INTERNAL_TABLE). Для расширенного индекса:

  • name — это внутреннее имя таблицы индексов;

  • parent_object_id — это object_id базовой таблицы;

  • столбцы is_ms_shipped, is_published и is_schema_published установлены в 0.

Связанные полезные системные представления
Подмножества объектов можно просмотреть с помощью системных представлений для определенного типа объекта, например:

Разрешения

Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

A. Возвращаются все объекты, измененные в течение последних N дней

Перед запуском следующего запроса замените <database_name> и <n_days> действительными значениями.

USE <database_name>;  
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() - <n_days>  
ORDER BY modify_date;  
GO  

Б. Возвращаются параметры для указанной хранимой процедуры или функции

Перед запуском следующего запроса замените <database_name> и <schema_name.object_name> действительными именами.

USE <database_name>;  
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('<schema_name.object_name>')  
ORDER BY schema_name, object_name, p.parameter_id;  
GO  

В. Возвращаются все определяемые пользователем функции в базе данных

Перед запуском следующего запроса замените <database_name> действительным именем базы данных.

USE <database_name>;  
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  

Г. Возвращается владелец каждого объекта в схеме

Перед запуском следующего запроса замените все экземпляры <database_name> и <schema_name> действительными именами.

USE <database_name>;  
GO  
SELECT 'OBJECT' AS entity_type  
    ,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name  
    ,name   
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'  
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) = '<schema_name>'   
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 JOIN sys.schemas AS s  
    ON s.schema_id = xsc.schema_id  
WHERE s.name = '<schema_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)