Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Возвращает данные об объектах области схемы в текущей базе данных. Список объектов в схеме приводится в статье документации sys.objects (Transact-SQL). Эта функция не может использоваться для объектов вне области схемы, таких как триггеры языка определения данных (DDL) и уведомления о событиях.
Соглашения о синтаксисе Transact-SQL
Синтаксис
OBJECTPROPERTY ( ID , property )
Аргументы
ИДЕНТИФИКАТОР
Выражение, представляющее идентификатор объекта в текущей базе данных. Идентификатор является int и считается объектом с областью действия схемы в текущем контексте базы данных.
свойство
Выражение, представляющее возвращаемые сведения для объекта, указанного идентификатором. свойство может быть одним из следующих значений.
Примечание.
Если не указано иное, NULL возвращается, если свойство не является допустимым именем свойства, идентификатор не является допустимым идентификатором объекта, идентификатором является неподдерживаемый тип объекта для указанного свойства, или вызывающий объект не имеет разрешения на просмотр метаданных объекта.
| Имя свойства | Тип объекта | Описание и возвращаемые значения |
|---|---|---|
CnstIsClustKey |
Ограничение |
PRIMARY KEY ограничение с кластеризованным индексом.1 = true 0 = False. |
CnstIsColumn |
Ограничение |
CHECK, DEFAULTили FOREIGN KEY ограничение для одного столбца.1 = true 0 = False. |
CnstIsDeleteCascade |
Ограничение |
FOREIGN KEY ограничение с параметром ON DELETE CASCADE .1 = true 0 = False. |
CnstIsDisabled |
Ограничение | Отключенное ограничение. 1 = true 0 = False. |
CnstIsNonclustKey |
Ограничение |
PRIMARY KEY или UNIQUE ограничение с некластеризованным индексом.1 = true 0 = False. |
CnstIsNotRepl |
Ограничение | Ограничение определяется с помощью NOT FOR REPLICATION ключевых слов.1 = true 0 = False. |
CnstIsNotTrusted |
Ограничение | Ограничение было включено без проверки существующих строк; Таким образом, ограничение может не содержаться для всех строк. 1 = true 0 = False. |
CnstIsUpdateCascade |
Ограничение |
FOREIGN KEY ограничение с параметром ON UPDATE CASCADE .1 = true 0 = False. |
ExecIsAfterTrigger |
Триггер |
AFTER триггер.1 = true 0 = False. |
ExecIsAnsiNullsOn |
Функция Transact-SQL, процедура Transact-SQL, триггер Transact-SQL, представление |
ANSI_NULLS Настройка во время создания.1 = true 0 = False. |
ExecIsDeleteTrigger |
Триггер |
DELETE триггер.1 = true 0 = False. |
ExecIsFirstDeleteTrigger |
Триггер | Первый триггер запускается при DELETE выполнении таблицы.1 = true 0 = False. |
ExecIsFirstInsertTrigger |
Триггер | Первый триггер запускается при INSERT выполнении таблицы.1 = true 0 = False. |
ExecIsFirstUpdateTrigger |
Триггер | Первый триггер запускается при UPDATE выполнении таблицы.1 = true 0 = False. |
ExecIsInsertTrigger |
Триггер |
INSERT триггер.1 = true 0 = False. |
ExecIsInsteadOfTrigger |
Триггер |
INSTEAD OF триггер.1 = true 0 = False. |
ExecIsLastDeleteTrigger |
Триггер | Последний триггер запускается при DELETE выполнении таблицы.1 = true 0 = False. |
ExecIsLastInsertTrigger |
Триггер | Последний триггер запускается при INSERT выполнении таблицы.1 = true 0 = False. |
ExecIsLastUpdateTrigger |
Триггер | Последний триггер запускается при UPDATE выполнении таблицы.1 = true 0 = False. |
ExecIsQuotedIdentOn |
Функция Transact-SQL, процедура Transact-SQL, триггер Transact-SQL, представление |
QUOTED_IDENTIFIER Настройка во время создания.1 = true 0 = False. |
ExecIsStartup |
Процедура | Процедура запуска. 1 = true 0 = False. |
ExecIsTriggerDisabled |
Триггер | Триггер отключен. 1 = true 0 = False. |
ExecIsTriggerNotForRepl |
Триггер | Триггер, определенный как NOT FOR REPLICATION.1 = true 0 = False. |
ExecIsUpdateTrigger |
Триггер |
UPDATE триггер.1 = true 0 = False. |
ExecIsWithNativeCompilation |
Процедура Transact-SQL |
относится к: SQL Server 2014 (12.x) и более поздним версиям. Процедура компилируется в собственном коде. 1 = true 0 = False. Базовый тип данных: int |
HasAfterTrigger |
Таблица или представление | Таблица или представление имеет AFTER триггер.1 = true 0 = False. |
HasDeleteTrigger |
Таблица или представление | Таблица или представление имеет DELETE триггер.1 = true 0 = False. |
HasInsertTrigger |
Таблица или представление | Таблица или представление имеет INSERT триггер.1 = true 0 = False. |
HasInsteadOfTrigger |
Таблица или представление | Таблица или представление имеет INSTEAD OF триггер.1 = true 0 = False. |
HasUpdateTrigger |
Таблица или представление | Таблица или представление имеет UPDATE триггер.1 = true 0 = False. |
IsAnsiNullsOn |
Функция Transact-SQL, процедура Transact-SQL, таблица, триггер Transact-SQL, представление | Указывает, что ANSI NULLS параметр для таблицы имеет значение ON. В ANSI NULLS противном случае ONвсе сравнения со значениемNULL.UNKNOWN Эта настройка относится ко всем выражениям в определении таблицы, включая вычисляемые столбцы и ограничения, в течение всего времени существования таблицы.1 = true 0 = False. |
IsCheckCnst |
Любой объект области схемы |
CHECK ограничение.1 = true 0 = False. |
IsConstraint |
Любой объект области схемы | Является одним столбцом или CHECK ограничением для столбца DEFAULTFOREIGN KEYили таблицы.1 = true 0 = False. |
IsDefault |
Любой объект области схемы |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Привязанное значение по умолчанию: 1 = true 0 = False. |
IsDefaultCnst |
Любой объект области схемы |
DEFAULT ограничение.1 = true 0 = False. |
IsDeterministic |
Функция или представление | Свойство детерминизма функции или представления. 1 = детерминированная 0 = недетерминированная |
IsEncrypted |
Функция Transact-SQL, процедура Transact-SQL, таблица, триггер Transact-SQL, представление | Указывает, что исходный текст инструкции модуля был преобразован в запутанный формат. Выходные данные обфускации не отображаются непосредственно в представлениях каталога в SQL Server 2005 (9.x). Пользователи, не имеющие доступа к системным таблицам или файлам баз данных, не могут получить текст, подвергнутый запутыванию. Однако текст доступен пользователям, которые могут получить доступ к системным таблицам через диагностическое подключение для администраторов баз данных или напрямую получить доступ к файлам базы данных. Кроме того, пользователь, имеющий возможность подключить отладчик к серверному процессу, сможет получить исходный текст процедуры из памяти во время выполнения. 1 = зашифрована 0 = не зашифрована Базовый тип данных: int |
IsExecuted |
Любой объект области схемы | Объект (представление, процедура, функция или триггер) может быть выполнен. 1 = true 0 = False. |
IsExtendedProc |
Любой объект области схемы | Расширенная процедура. 1 = true 0 = False. |
IsForeignKey |
Любой объект области схемы |
FOREIGN KEY ограничение.1 = true 0 = False. |
IsIndexed |
Таблица или представление | Таблица или представление, имеющие индекс. 1 = true 0 = False. |
IsIndexable |
Таблица или представление | Таблица или представление, на которых может быть создан индекс. 1 = true 0 = False. |
IsInlineFunction |
Function | Встроенная функция. 1 = встроенная функция 0 = невстроенная функция |
IsMSShipped |
Любой объект области схемы | Объект, созданный во время установки SQL Server. 1 = true 0 = False. |
IsPrimaryKey |
Любой объект области схемы |
PRIMARY KEY ограничение.1 = true 0 = False. NULL = не является функцией или идентификатором объекта не является допустимым. |
IsProcedure |
Любой объект области схемы | Процедура. 1 = true 0 = False. |
IsQuotedIdentOn |
функция Transact-SQL, процедура Transact-SQL, таблица, Transact-SQL триггер, представление, ограничение, CHECKDEFAULT определение |
Указывает, что параметр идентификатора кавычки для объекта.ON Это означает, что двойные кавычки разделяют идентификаторы во всех выражениях, участвующих в определении объекта.1 = ON0 = OFF |
IsQueue |
Любой объект области схемы | Очередь компонента Service Broker 1 = true 0 = False. |
IsReplProc |
Любой объект области схемы | Процедура репликации. 1 = true 0 = False. |
IsRule |
Любой объект области схемы | Привязанное правило. 1 = true 0 = False. |
IsScalarFunction |
Function | Скалярная функция. 1 = скалярная функция 0 = нескалярная функция |
IsSchemaBound |
Функция или представление | Привязанная к схеме функция или представление, созданное с помощью SCHEMABINDING.1 = привязана к схеме 0 = не привязана к схеме. |
IsSystemTable |
Таблица | Системная таблица. 1 = true 0 = False. |
IsSystemVerified |
Object | SQL Server может проверять свойства детерминированности и точности объекта. 1 = true 0 = False. |
IsTable |
Таблица | Таблица. 1 = true 0 = False. |
IsTableFunction |
Function | Функция с табличным значением. 1 = функция с табличным значением 0 = функция не с табличным значением |
IsTrigger |
Любой объект области схемы | Триггер. 1 = true 0 = False. |
IsUniqueCnst |
Любой объект области схемы |
UNIQUE ограничение.1 = true 0 = False. |
IsUserTable |
Таблица | Пользовательская таблица. 1 = true 0 = False. |
IsView |
Представления | Представление. 1 = true 0 = False. |
OwnerId |
Любой объект области схемы | Владелец объекта. Примечание. Владелец схемы необязательно является владельцем объекта. Например, дочерние объекты (те, где parent_object_id не имеет значения NULL), всегда возвращают тот же идентификатор владельца, что и родительский. Non-null = идентификатор пользователя базы данных владельца объекта. |
SchemaId |
Любой объект области схемы | Идентификатор схемы, которой принадлежит объект. |
TableDeleteTrigger |
Таблица | Таблица имеет DELETE триггер.>1 = идентификатор первого триггера указанного типа. |
TableDeleteTriggerCount |
Таблица | Таблица имеет указанное количество триггеров DELETE .>0 = количество триггеров DELETE . |
TableFullTextMergeStatus |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Определяет, участвует ли в настоящий момент полнотекстовый индекс для таблицы в процессе слияния. 0 = для таблицы отсутствует полнотекстовый индекс, либо индекс не находится в процессе слияния. 1 = полнотекстовый индекс находится в процессе слияния. |
TableFullTextBackgroundUpdateIndexOn |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. В таблице имеется включенный полнотекстовый индекс фонового обновления (отслеживание автозамен). 1 = ИСТИННО 0 = ЛОЖНО |
TableFulltextCatalogId |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Идентификатор полнотекстового каталога, в котором находятся данные полнотекстового индекса для таблицы. Не 0 = идентификатор полнотекстового каталога, связанный с уникальным индексом, идентифицирующим строки в полнотекстовой индексированной таблице. 0 = таблица не имеет полнотекстового индекса. |
TableFulltextChangeTrackingOn |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Для таблицы включено полнотекстовое отслеживание изменений. 1 = ИСТИННО 0 = ЛОЖНО |
TableFulltextDocsProcessed |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Количество строк, обработанных с начала полнотекстового индексирования. В таблице, которая индексируется для полнотекстового поиска, все столбцы одной строки рассматриваются как часть единого индексируемого документа. 0 = отсутствие активного сканирования или полнотекстовое индексирование закончено. > 0 = один из следующих вариантов (А или Б): А) Количество документов, обработанных с использованием операций вставки или обновления с начала полного, добавочного или ручного заполнения с отслеживанием изменений. B) Количество строк, обработанных операциями вставки или обновления после включения отслеживания изменений с включенным индексом фонового обновления, изменена схема полнотекстового индекса, перестроенный полнотекстовый каталог или экземпляр SQL Server перезапущен. NULL = Таблица не имеет полнотекстового индекса.Это свойство не обеспечивает наблюдение за удаленными строками или их подсчет. |
TableFulltextFailCount |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Количество строк, для которых полнотекстовый поиск не выявил индекса. 0 = заполнение населения завершено. > 0 = один из следующих вариантов (А или Б): А) Количество документов, не индексированных с начала заполнения отслеживания изменений полного, постепенного или ручного обновления. Б) Для отслеживания изменений с индексацией фонового обновления — число строк, которые не проиндексированы с начала или перезапуска заполнения. Это может быть вызвано изменением схемы, перестроением каталога, перезапуском сервера и т. д. NULL = Таблица не имеет полнотекстового индекса. |
TableFulltextItemCount |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Количество строк, для которых было успешно выполнено полнотекстовое индексирование. |
TableFulltextKeyColumn |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Идентификатор столбца, связанного с уникальным индексом одного столбца, который участвует в определении полнотекстового индекса: 0 = таблица не имеет полнотекстового индекса. |
TableFulltextPendingChanges |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Количество ожидающих отслеженных изменений к обработке. 0 = Отслеживание изменений не включено. NULL = Таблица не имеет полнотекстового индекса. |
TableFulltextPopulateStatus |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. 0 = Бездействует. 1 = Производится полное заполнение. 2 = Производится добавочное заполнение. 3 = Выполняется распространение отслеженных изменений. 4 = выполняется индексирование фонового обновления (например автоматическое отслеживание изменений). 5 = Полнотекстовое индексирование приостановлено, или не хватает ресурсов на его выполнение. |
TableHasActiveFulltextIndex |
Таблица |
Область применения: SQL Server 2008 (10.0.x) и более поздних версий. Таблица имеет активный полнотекстовый индекс. 1 = true 0 = False. |
TableHasCheckCnst |
Таблица | Таблица имеет CHECK ограничение.1 = true 0 = False. |
TableHasClustIndex |
Таблица | Таблица имеет кластеризованный индекс. 1 = true 0 = False. |
TableHasDefaultCnst |
Таблица | Таблица имеет DEFAULT ограничение.1 = true 0 = False. |
TableHasDeleteTrigger |
Таблица | Таблица имеет DELETE триггер.1 = true 0 = False. |
TableHasForeignKey |
Таблица | Таблица имеет FOREIGN KEY ограничение.1 = true 0 = False. |
TableHasForeignRef |
Таблица | Таблица ссылается на FOREIGN KEY ограничение.1 = true 0 = False. |
TableHasIdentity |
Таблица | Таблица содержит столбец идентификаторов. 1 = true 0 = False. |
TableHasIndex |
Таблица | Таблица имеет индекс какого-либо типа. 1 = true 0 = False. |
TableHasInsertTrigger |
Таблица | Объект имеет INSERT триггер.1 = true 0 = False. |
TableHasNonclustIndex |
Таблица | Таблица содержит некластеризованный индекс. 1 = true 0 = False. |
TableHasPrimaryKey |
Таблица | Таблица содержит первичный ключ. 1 = true 0 = False. |
TableHasRowGuidCol |
Таблица | Таблица содержит ROWGUIDCOLстолбец uniqueidentifier .1 = true 0 = False. |
TableHasTextImage |
Таблица | Таблица содержит столбец text, ntext или image. 1 = true 0 = False. |
TableHasTimestamp |
Таблица | Таблица содержит столбец timestamp. 1 = true 0 = False. |
TableHasUniqueCnst |
Таблица | Таблица имеет UNIQUE ограничение.1 = true 0 = False. |
TableHasUpdateTrigger |
Таблица | Объект имеет UPDATE триггер.1 = true 0 = False. |
TableHasVarDecimalStorageFormat |
Таблица | Для таблицы включен формат хранения vardecimal. 1 = true 0 = False. |
TableInsertTrigger |
Таблица | Таблица имеет INSERT триггер.>1 = идентификатор первого триггера указанного типа. |
TableInsertTriggerCount |
Таблица | Таблица имеет указанное количество триггеров INSERT .>0 = количество триггеров INSERT . |
TableIsFake |
Таблица | Таблица реально не существует. Он материализуется внутренне по запросу ядро СУБД SQL Server. 1 = true 0 = False. |
TableIsLockedOnBulkLoad |
Таблица | Таблица заблокирована из-за bcp или BULK INSERT задания.1 = true 0 = False. |
TableIsMemoryOptimized |
Таблица |
относится к: SQL Server 2014 (12.x) и более поздним версиям. Таблица, оптимизированная для памяти 1 = true 0 = False. Базовый тип данных: int Дополнительные сведения см. в разделеIn-Memory обзоре и сценариях использования OLTP. |
TableIsPinned |
Таблица | Таблица закреплена для хранения в кэше данных. 0 = False. Эта функция не поддерживается в SQL Server 2005 (9.x) и более поздних версиях. |
TableTextInRowLimit |
Таблица | Максимальное количество байтов, допустимое для текста в строке. 0, если не установлен параметр текст в строке. |
TableUpdateTrigger |
Таблица | Таблица имеет UPDATE триггер.> 1 = идентификатор первого триггера указанного типа. |
TableUpdateTriggerCount |
Таблица | Таблица имеет указанное UPDATE количество триггеров.> 0 = количество триггеров UPDATE . |
TableHasColumnSet |
Таблица | Таблица содержит набор столбцов. 0 = False. 1 = true Дополнительные сведения см. в разделе "Использование наборов столбцов". |
TableTemporalType |
Таблица |
относится к: SQL Server 2016 (13.x) и более поздним версиям. Задает тип таблицы: 0 = нетемпоральная таблица; 1 = таблица журнала для таблицы с управлением версиями; 2 = темпоральная таблица с управлением версиями. |
Типы возвращаемых данных
int
Исключения
Возвращает ошибку NULL или если вызывающий объект не имеет разрешения на просмотр объекта.
Разрешения
Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это означает, что встроенные функции метаданных, такие как OBJECTPROPERTY возврат NULL , если у пользователя нет разрешений на объект. Дополнительные сведения см. в разделе "Конфигурация видимости метаданных".
Замечания
В ядро СУБД предполагается, что object_id находится в текущем контексте базы данных. Запрос, ссылающийся на object_id в другой базе данных, возвращает или неверные NULL результаты. Например, в следующем запросе текущий контекст базы данных является базой master данных. Ядро СУБД пытается вернуть значение свойства для указанного object_id в этой базе данных вместо базы данных, указанной в запросе. Запрос возвращает неверные результаты, так как представление vEmployee не находится в master базе данных.
USE master;
GO
SELECT OBJECTPROPERTY(OBJECT_ID(N'AdventureWorks2022.HumanResources.vEmployee'), 'IsView');
GO
OBJECTPROPERTY(view_id, 'IsIndexable') может использовать значительные ресурсы компьютера, так как для оценки свойства IsIndexable требуется синтаксический анализ определения представления, нормализации и частичной оптимизации. Даже если свойство IsIndexable определяет, что таблицы или представления могут быть проиндексированы, фактическое создание индекса может завершиться ошибкой, если не выполняются требования к ключу индекса. Дополнительные сведения см. в статье CREATE INDEX (Transact-SQL).
OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') возвращает значение 1 (true), если для индексирования добавляется по крайней мере один столбец таблицы. Заполнение полнотекстового индекса становится активным, как только для индексирования добавлен хотя бы один столбец.
При создании QUOTED IDENTIFIER таблицы параметр всегда хранится как ON в метаданных таблицы, даже если параметр задан OFF при создании таблицы.
OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') Поэтому всегда возвращает значение 1 (true).
Примеры
А. Убедитесь, что объект является таблицей
В следующем примере производится проверка, является ли UnitMeasure таблицей в базе данных AdventureWorks2025.
USE AdventureWorks2022;
GO
IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 1
PRINT 'UnitMeasure is a table.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 0
PRINT 'UnitMeasure is not a table.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') IS NULL
PRINT 'ERROR: UnitMeasure is not a valid object.';
GO
B. Убедитесь, что скалярная определяемая пользователем функция детерминирована
В приведенном ниже примере производится проверка того, является ли пользовательская скалярная функция ufnGetProductDealerPrice, возвращающая значение money, детерминированной.
USE AdventureWorks2022;
GO
SELECT OBJECTPROPERTY(OBJECT_ID('dbo.ufnGetProductDealerPrice'), 'IsDeterministic');
GO
Результирующий набор показывает, что функция ufnGetProductDealerPrice не является детерминированной.
-----
0
C. Поиск таблиц, принадлежащих определенной схеме
В следующем примере возвращаются все таблицы в схеме dbo .
-- Uses AdventureWorks
SELECT schema_name(o.schema_id), o.name, o.object_id, o.type_desc
FROM sys.objects AS o
WHERE OBJECTPROPERTY(o.object_id, N'SchemaId') = SCHEMA_ID(N'dbo')
ORDER BY o.type_desc, o.name;
GO
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
Г. Проверка того, является ли объект таблицей
В следующем примере проверяется, является ли dbo.DimReseller таблица в базе данных AdventureWorksPDW2022.
-- Uses AdventureWorks
IF OBJECTPROPERTY (OBJECT_ID(N'dbo.DimReseller'),'ISTABLE') = 1
SELECT 'DimReseller is a table.'
ELSE
SELECT 'DimReseller is not a table.';
GO