sys.objects (Transact-SQL)
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
конечной точке аналитики платформы Аналитики Azure Synapse Analytics
(PDW)
в Microsoft Fabric
Хранилище в Microsoft Fabric
Содержит строку для каждого определяемого пользователем объекта с областью действия схемы, созданного в базе данных, включая собственные скомпилированные скалярные пользовательские функции.
Дополнительные сведения см. в разделе Скалярные определяемые пользователем функции для выполняющейся в памяти OLTP.
Примечание.
sys.objects
не отображает триггеры DDL, так как они не являются областью действия схемы. Все триггеры, как DML, так и DDL, находятся в sys.triggers. sys.triggers
поддерживает сочетание правил области имен для различных типов триггеров.
Имя столбца | Тип данных | Description |
---|---|---|
name |
sysname | Имя объекта. |
object_id |
int | Идентификационный номер объекта. Уникален в базе данных. |
principal_id |
int | Идентификатор отдельного владельца, если он отличается от владельца схемы. По умолчанию содержащиеся в схеме объекты принадлежат владельцу схемы. Однако альтернативный владелец можно указать с помощью инструкции ALTER AUTHORIZATION для изменения владения.NULL Если альтернативного владельца нет.Если NULL тип объекта является одним из следующих значений:C = проверка ограниченияD = по умолчанию (ограничение или автономное)F = ограничение внешнего ключаPK = ограничение первичного ключаR = правило (старый стиль, автономный)TA = триггер сборки (интеграция CLR-integration)TR = триггер SQLUQ = уникальное ограничениеEC = ограничение edge |
schema_id |
int | Идентификатор схемы, в которой содержится объект. Системные объекты с областью схемы всегда содержатся в системе или INFORMATION_SCHEMA схемах. |
parent_object_id |
int | Идентификатор объекта, которому принадлежит данный объект.0 = не дочерний объект. |
type |
char(2) | Тип объекта:AF = агрегатная функция (CLR)C = проверка ограниченияD = по умолчанию (ограничение или автономное)F = ограничение внешнего ключаFN = скалярная функция SQLFS = скалярная функция сборки (CLR)FT = табличное значение функции сборки (CLR)IF = встроенная табличная функция SQL (TVF)IT = внутренняя таблицаP = хранимая процедура SQLPC = хранимая процедура сборки (CLR)PG = руководство по планированиюPK = ограничение первичного ключаR = правило (старый стиль, автономный)RF = процедура replication-filter-procedureS = системная базовая таблицаSN = синонимSO = объект SequenceU = таблица (определяемая пользователем)V = представлениеОбласть применения: SQL Server 2012 (11.x) и более поздних версий SQ = очередь службTA = триггер DML сборки (CLR)TF = табличная функция SQL (TVF)TR = триггер DML SQLTT = тип таблицыUQ = уникальное ограничениеX = расширенная хранимая процедураОбласть применения: SQL Server 2014 (12.x) и более поздних версий, База данных SQL Azure, Azure Synapse Analytics, Analytics Platform System (PDW) ST = дерево статистикиОбласть применения: SQL Server 2016 (13.x) и более поздних версий, База данных SQL Azure, Azure Synapse Analytics, Analytics Platform System (PDW) ET = внешняя таблицаОбласть применения: SQL Server 2017 (14.x) и более поздних версий, База данных SQL Azure, Azure Synapse Analytics, Analytics Platform System (PDW) EC = ограничение edge |
type_desc |
nvarchar(60) | Описание типа объекта:AGGREGATE_FUNCTION CHECK_CONSTRAINT CLR_SCALAR_FUNCTION CLR_STORED_PROCEDURE CLR_TABLE_VALUED_FUNCTION CLR_TRIGGER DEFAULT_CONSTRAINT EDGE_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TYPE_TABLE 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 | Опубликована только схема объекта. |
Замечания
Встроенные функции OBJECT_ID, OBJECT_NAME и OBJECTPROPERTY можно применить к объектам, показанным в sys.objects
.
Существует версия этого представления с той же схемой, которая называется sys.system_objects, которая показывает системные объекты. Другое представление, называемое sys.all_objects, показывает как системные, так и пользовательские объекты. Все три представления каталогов имеют одну и ту же структуру.
В этой версии SQL Server расширенный индекс, например XML-индекс или пространственный индекс, считается внутренней таблицей (sys.objects
type
и IT
имеет значение INTERNAL_TABLE
).type_desc
Для расширенного индекса:
name
— внутреннее имя таблицы индексаparent_object_id
object_id
является базовой таблицейis_ms_shipped
,is_published
иis_schema_published
столбцы имеют значение. 0
Связанные системные представления
Подмножества объектов можно просматривать с помощью системных представлений для определенного типа объекта, например:
Разрешения
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры
А. Возврат всех объектов, измененных за последние 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
B. Возврат параметров для указанной хранимой процедуры или функции
Перед запуском следующего запроса замените <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
C. Возврат всех пользовательских функций в базе данных
Перед запуском следующего запроса замените <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
D. Возврат владельца каждого объекта в схеме
Перед запуском следующего запроса замените все экземпляры <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
INNER JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO