OBJECTPROPERTYEX (Transact-SQL)

Возвращает данные об объектах области схемы в текущей базе данных. Перечень этих объектов содержится в разделе sys.objects (Transact-SQL). Функция OBJECTPROPERTYEX не может применяться к объектам, недоступным в области, например: триггерам DDL и уведомлениям о событиях.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

OBJECTPROPERTYEX ( id , property )

Аргументы

  • id
    Выражение, которое представляет идентификатор объекта в текущей базе данных. Аргумент id имеет тип int. Предполагается, что он представляет объект области схемы в текущем контексте базы данных.

  • property
    Выражение, содержащее сведения, которые необходимо вернуть для объекта, указываемого идентификатором. Тип возвращаемого значения — sql_variant. В следующей таблице перечислены базовые типы данных для каждого из свойств.

    Примечание

    Если не указано иное, значение NULL возвращается в следующих случаях: если аргумент property не является допустимым именем свойства, если аргумент id не является допустимым идентификатором объекта, если аргумент id не является поддерживаемым типом объекта для указанного property или если вызывающая сторона не имеет разрешения на просмотр метаданных объекта.

    Имя свойства

    Тип объекта

    Описание и возвращаемые значения

    BaseType

    Любой объект области схемы

    Идентифицирует базовый тип объекта. Если указанный объект — SYNONYM, возвращается базовый тип соответствующего объекта.

    Не NULL = тип объекта

    Базовый тип данных: char(2)

    CnstIsClustKey

    Ограничение

    Ограничение PRIMARY KEY с кластеризованным индексом.

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsColumn

    Ограничение

    Ограничение CHECK, DEFAULT или FOREIGN KEY на одиночный столбец.

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsDeleteCascade

    Ограничение

    Ограничение FOREIGN KEY с параметром ON DELETE CASCADE.

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsDisabled

    Ограничение

    Отключенное ограничение.

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsNonclustKey

    Ограничение

    Ограничение PRIMARY KEY с некластеризованным индексом:

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsNotRepl

    Ограничение

    Ограничение определено с помощью ключевых слов NOT FOR REPLICATION.

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsNotTrusted

    Ограничение

    Ограничение было включено без проверки существующих строк, то есть ограничение может выполняться не для всех строк.

    1 = True

    0 = False

    Базовый тип данных: int

    CnstIsUpdateCascade

    Ограничение

    Ограничение FOREIGN KEY с параметром ON UPDATE CASCADE.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsAfterTrigger

    Триггер

    Триггер AFTER.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsAnsiNullsOn

    Функция Transact-SQL, процедура Transact-SQL, триггер Transact-SQL, представление

    Значение параметра ANSI_NULLS на момент создания:

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsDeleteTrigger

    Триггер

    Триггер DELETE.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsFirstDeleteTrigger

    Триггер

    Первый триггер, срабатывающий при выполнении инструкции DELETE для таблицы:

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsFirstInsertTrigger

    Триггер

    Первый триггер, срабатывающий при выполнении инструкции INSERT для таблицы:

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsFirstUpdateTrigger

    Триггер

    Первый триггер, срабатывающий при выполнении инструкции UPDATE для таблицы:

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsInsertTrigger

    Триггер

    Триггер INSERT.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsInsteadOfTrigger

    Триггер

    Триггер INSTEAD OF.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsLastDeleteTrigger

    Триггер

    Последний триггер, сработавший при выполнении инструкции DELETE для таблицы.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsLastInsertTrigger

    Триггер

    Последний триггер, сработавший при выполнении инструкции INSERT для таблицы.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsLastUpdateTrigger

    Триггер

    Последний триггер, сработавший при выполнении инструкции UPDATE для таблицы.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsQuotedIdentOn

    Функция Transact-SQL, процедура Transact-SQL, триггер Transact-SQL, представление

    Значение параметра QUOTED_IDENTIFIER на момент создания.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsStartup

    Процедура

    Процедура запуска.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsTriggerDisabled

    Триггер

    Триггер отключен.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsTriggerNotForRepl

    Триггер

    Триггер определен как NOT FOR REPLICATION.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsUpdateTrigger

    Триггер

    Триггер UPDATE.

    1 = True

    0 = False

    Базовый тип данных: int

    ExecIsWithNativeCompilation

    Процедура Transact-SQL

    Процедура компилируется в собственном коде.

    1 = True

    0 = False

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

    HasAfterTrigger

    Таблица, представление

    Таблица или представление с триггером AFTER.

    1 = True

    0 = False

    Базовый тип данных: int

    HasDeleteTrigger

    Таблица, представление

    Таблица или представление с триггером DELETE.

    1 = True

    0 = False

    Базовый тип данных: int

    HasInsertTrigger

    Таблица, представление

    Таблица или представление с триггером INSERT.

    1 = True

    0 = False

    Базовый тип данных: int

    HasInsteadOfTrigger

    Таблица, представление

    Таблица или представление с триггером INSTEAD OF.

    1 = True

    0 = False

    Базовый тип данных: int

    HasUpdateTrigger

    Таблица, представление

    Таблица или представление с триггером UPDATE.

    1 = True

    0 = False

    Базовый тип данных: int

    IsAnsiNullsOn

    Функция Transact-SQL, процедура Transact-SQL, таблица, триггер Transact-SQL, представление

    Указывает, что значение параметра ANSI NULLS для таблицы равно ON, что означает, что все сравнения со значением NULL имеют результат UNKNOWN. Эта настройка относится ко всем выражениям в определении таблицы, включая вычисляемые столбцы и ограничения, в течение всего времени существования таблицы.

    1 = True

    0 = False

    Базовый тип данных: int

    IsCheckCnst

    Любой объект области схемы

    Ограничение CHECK.

    1 = True

    0 = False

    Базовый тип данных: int

    IsConstraint

    Любой объект области схемы

    Ограничение:

    1 = True

    0 = False

    Базовый тип данных: int

    IsDefault

    Любой объект области схемы

    Привязанное значение по умолчанию:

    1 = True

    0 = False

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    IsDefaultCnst

    Любой объект области схемы

    Ограничение DEFAULT:

    1 = True

    0 = False

    Базовый тип данных: int

    IsDeterministic

    Скалярная функция или функция с табличным значением, представление

    Свойство детерминизма функции или представления.

    1 = детерминированная

    0 = недетерминированная

    Базовый тип данных: int

    IsEncrypted

    Функция Transact-SQL, процедура Transact-SQL, таблица, триггер Transact-SQL, представление

    Указывает, что исходный текст инструкции модуля был преобразован в запутанный формат. Результат запутывания не виден непосредственно ни в одном представлении каталога SQL Server 2005. Пользователи, не имеющие доступа к системным таблицам или файлам баз данных, не могут получить текст, подвергнутый запутыванию. Однако этот текст будет доступен пользователям, которые имеют либо доступ к системным таблицам через порт DAC, либо непосредственный доступ к файлам баз данных. Кроме того, пользователь, имеющий возможность подключить отладчик к серверному процессу, сможет получить исходный текст процедуры из памяти во время выполнения.

    1 = зашифрован

    0 = не зашифрована

    Базовый тип данных: int

    IsExecuted

    Любой объект области схемы

    Указывает, может ли объект быть выполнен (представление, процедура, функция или триггер):

    1 = True

    0 = False

    Базовый тип данных: int

    IsExtendedProc

    Любой объект области схемы

    Расширенная процедура.

    1 = True

    0 = False

    Базовый тип данных: int

    IsForeignKey

    Любой объект области схемы

    Ограничение FOREIGN KEY.

    1 = True

    0 = False

    Базовый тип данных: int

    IsIndexed

    Таблица, представление

    Таблица или представление с индексом:

    1 = True

    0 = False

    Базовый тип данных: int

    IsIndexable

    Таблица, представление

    Таблица или представление, для которого может быть создан индекс:

    1 = True

    0 = False

    Базовый тип данных: int

    IsInlineFunction

    Функция

    Встроенная функция.

    1 = встроенная функция

    0 = невстроенная функция

    Базовый тип данных: int

    IsMSShipped

    Любой объект области схемы

    Объект создан во время установки SQL Server.

    1 = True

    0 = False

    Базовый тип данных: int

    IsPrecise

    Вычисляемый столбец, функция, определяемый пользователем тип, представление

    Указывает, содержит ли объект вычисления с потерей точности (например: операции с плавающей запятой):

    1 = точные вычисления;

    0 = вычисления с потерей точности.

    Базовый тип данных: int

    IsPrimaryKey

    Любой объект области схемы

    Ограничение PRIMARY KEY.

    1 = True

    0 = False

    Базовый тип данных: int

    IsProcedure

    Любой объект области схемы

    Процедура.

    1 = True

    0 = False

    Базовый тип данных: int

    IsQuotedIdentOn

    Ограничение CHECK, определение DEFAULT, функция Transact-SQL, процедура Transact-SQL, таблица, триггер Transact-SQL, представление

    Указывает, что параметр «идентификатор в кавычках» для объекта имеет значение ON; это означает, что во всех выражениях, присутствующих в определении объекта, идентификаторы заключаются в кавычки.

    1 = True

    0 = False

    Базовый тип данных: int

    IsQueue

    Любой объект области схемы

    Очередь компонента Service Broker

    1 = True

    0 = False

    Базовый тип данных: int

    IsReplProc

    Любой объект области схемы

    Процедура репликации.

    1 = True

    0 = False

    Базовый тип данных: int

    IsRule

    Любой объект области схемы

    Привязанное правило.

    1 = True

    0 = False

    Базовый тип данных: int

    IsScalarFunction

    Функция

    Скалярная функция.

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

    0 = нескалярная функция

    Базовый тип данных: int

    IsSchemaBound

    Процедура, функция, представление

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

    1 = привязана к схеме

    0 = Не привязан к схеме.

    Базовый тип данных: int

    IsSystemTable

    Таблица

    Системная таблица.

    1 = True

    0 = False

    Базовый тип данных: int

    IsSystemVerified

    Вычисляемый столбец, функция, определяемый пользователем тип, представление

    Свойства точности и детерминизма объекта могут быть проверены SQL Server:

    1 = True

    0 = False

    Базовый тип данных: int

    IsTable

    Таблица

    Таблица.

    1 = True

    0 = False

    Базовый тип данных: int

    IsTableFunction

    Функция

    Функция с табличным значением.

    1 = функция с табличным значением

    0 = функция не с табличным значением

    Базовый тип данных: int

    IsTrigger

    Любой объект области схемы

    Триггер.

    1 = True

    0 = False

    Базовый тип данных: int

    IsUniqueCnst

    Любой объект области схемы

    Ограничение UNIQUE.

    1 = True

    0 = False

    Базовый тип данных: int

    IsUserTable

    Таблица

    Пользовательская таблица.

    1 = True

    0 = False

    Базовый тип данных: int

    IsView

    Представление

    Представление.

    1 = True

    0 = False

    Базовый тип данных: int

    OwnerId

    Любой объект области схемы

    Владелец объекта.

    Примечание

    Владелец схемы не обязательно является владельцем объекта.Например: дочерние объекты (такие, у которых аргумент parent_object_id не равен NULL) всегда возвращают в качестве родителя один и тот же идентификатор владельца.

    Не NULL = идентификатор пользователя базы данных — владельца объекта.

    NULL = недопустимый идентификатор объекта или тип объекта не поддерживается.

    Базовый тип данных: int

    SchemaId

    Любой объект области схемы

    Идентификатор схемы, связанной с объектом.

    Не NULL = идентификатор схемы объекта.

    Базовый тип данных: int

    SystemDataAccess

    Функция, представление

    Объект производит доступ к системным данным, системным каталогам или виртуальным системным таблицам в локальном экземпляре SQL Server.

    0 = нет

    1 = чтение;

    Базовый тип данных: int

    TableDeleteTrigger

    Таблица

    У таблицы есть триггер DELETE.

    >1 = идентификатор первого триггера указанного типа.

    Базовый тип данных: int

    TableDeleteTriggerCount

    Таблица

    В таблице существует указанное число триггеров типа DELETE.

    Не NULL = Число триггеров DELETE.

    Базовый тип данных: int

    TableFullTextMergeStatus

    Таблица

    Определяет, участвует ли в настоящий момент полнотекстовый индекс для таблицы в процессе слияния.

    0 = для таблицы отсутствует полнотекстовый индекс, либо индекс не находится в процессе слияния.

    1 = полнотекстовый индекс находится в процессе слияния.

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFullTextBackgroundUpdateIndexOn

    Таблица

    Таблица содержит включенный полнотекстовый индекс (с автоматическим отслеживанием изменений) с фоновым обновлением:

    1 = TRUE

    0 = FALSE

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextCatalogId

    Таблица

    Идентификатор полнотекстового каталога, в котором находятся данные полнотекстового индекса для таблицы.

    Не 0 = идентификатор полнотекстового каталога, связанный с уникальным индексом, идентифицирующим строки в полнотекстовой индексированной таблице.

    0 = таблица не имеет полнотекстового индекса.

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFullTextChangeTrackingOn

    Таблица

    Для таблицы включено полнотекстовое отслеживание изменений.

    1 = TRUE

    0 = FALSE

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextDocsProcessed

    Таблица

    Количество строк, обработанных с начала полнотекстового индексирования. В таблице, которая индексируется для полнотекстового поиска, все столбцы одной строки рассматриваются как часть единого индексируемого документа.

    0 = отсутствие активного сканирования или полнотекстовое индексирование закончено.

    > 0 = один из следующих вариантов:

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

    • Число строк, обработанных операциями вставки или обновления с момента включения отслеживания изменений при фоновом заполнении индекса обновления, изменения схемы полнотекстового индекса, повторного построения полнотекстового каталога, перезапуска экземпляра SQL Server и т. д.

    NULL = таблица не содержит полнотекстового индекса.

    Базовый тип данных: int

    Примечание. Это свойство не отслеживает и не подсчитывает удаленные строки.

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextFailCount

    Таблица

    Число строк, не проиндексированных для полнотекстового поиска.

    0 = заполнение завершено.

    >0 = один из следующих вариантов:

    • количество документов, не индексированных с начала заполнения отслеживания изменений полного, постепенного или ручного обновления;

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

    NULL = таблица не содержит полнотекстового индекса.

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextItemCount

    Таблица

    NonNULL = число строк, которые были полнотекстово проиндексированы.

    NULL = таблица не содержит полнотекстового индекса.

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextKeyColumn

    Таблица

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

    0 = таблица не имеет полнотекстового индекса.

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextPendingChanges

    Таблица

    Количество отслеживаемых изменений, ожидающих обработки.

    0 = отслеживание изменений не включено.

    NULL = таблица не содержит полнотекстового индекса.

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFulltextPopulateStatus

    Таблица

    0 = бездействие.

    1 = выполняется полное заполнение.

    2 = производится добавочное заполнение.

    3 = выполняется распространение отслеженных изменений.

    4 = выполняется индексирование фонового обновления (например автоматическое отслеживание изменений).

    5 = полнотекстовое индексирование приостановлено либо не хватает ресурсов на его выполнение.

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableFullTextSemanticExtraction

    Таблица

    Таблица поддерживает семантическое индексирование.

    1 = True

    0 = False

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

    TableHasActiveFulltextIndex

    Таблица

    Таблица имеет активный полнотекстовый индекс.

    1 = True

    0 = False

    Базовый тип данных: int

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TableHasCheckCnst

    Таблица

    Таблица имеет ограничение CHECK.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasClustIndex

    Таблица

    Таблица имеет кластеризованный индекс.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasDefaultCnst

    Таблица

    Таблица имеет ограничение DEFAULT.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasDeleteTrigger

    Таблица

    У таблицы есть триггер DELETE.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasForeignKey

    Таблица

    Таблица имеет ограничение FOREIGN KEY.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasForeignRef

    Таблица

    На таблицу есть ссылки по ограничению FOREIGN KEY.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasIdentity

    Таблица

    Таблица содержит столбец идентификаторов.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasIndex

    Таблица

    Таблица имеет индекс какого-либо типа.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasInsertTrigger

    Таблица

    Объект имеет триггер INSERT.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasNonclustIndex

    Таблица

    Таблица содержит некластеризованный индекс:

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasPrimaryKey

    Таблица

    Таблица содержит первичный ключ.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasRowGuidCol

    Таблица

    Таблица содержит свойство ROWGUIDCOL для столбца uniqueidentifier .

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasTextImage

    Таблица

    Таблица содержит столбец text, ntext или image.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasTimestamp

    Таблица

    Таблица содержит столбец timestamp.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasUniqueCnst

    Таблица

    Таблица имеет ограничение UNIQUE.

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasUpdateTrigger

    Таблица

    Объект содержит триггер UPDATE:

    1 = True

    0 = False

    Базовый тип данных: int

    TableHasVarDecimalStorageFormat

    Таблица

    Для таблицы включен формат хранения vardecimal.

    1 = True

    0 = False

    TableInsertTrigger

    Таблица

    Таблица содержит триггер INSERT.

    >1 = идентификатор первого триггера указанного типа.

    Базовый тип данных: int

    TableInsertTriggerCount

    Таблица

    В таблице существует указанное число триггеров типа INSERT.

    >0 = количество триггеров INSERT.

    Базовый тип данных: int

    TableIsFake

    Таблица

    Таблица реально не существует. Компонент Компонент Database Engine материализует ее внутренним образом по запросу.

    1 = True

    0 = False

    Базовый тип данных: int

    TableIsLockedOnBulkLoad

    Таблица

    Таблица блокирована из-за bcp или задания BULK INSERT.

    1 = True

    0 = False

    Базовый тип данных: int

    TableIsMemoryOptimized

    Таблица

    Таблица, оптимизированная для памяти

    1 = True

    0 = False

    Базовый тип данных: int

    Дополнительные сведения см. в разделе In-Memory OLTP (оптимизация в памяти).

    Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

    TableIsPinned

    Таблица

    Таблица закреплена для хранения в кэше данных.

    0 = False

    Эта функция не поддерживается в SQL Server 2005 и более поздних версиях.

    TableTextInRowLimit

    Таблица

    Для таблицы установлен параметр text in row .

    > 0 = максимальное количество байтов, допустимое для text in row.

    0 = параметр text in row не задан.

    Базовый тип данных: int

    TableUpdateTrigger

    Таблица

    Таблица содержит триггер UPDATE.

    > 1 = идентификатор первого триггера указанного типа.

    Базовый тип данных: int

    TableUpdateTriggerCount

    Таблица

    В таблице существует указанное число триггеров типа UPDATE.

    >0 = количество триггеров UPDATE.

    Базовый тип данных: int

    UserDataAccess

    Функция, представление

    Указывает, что объект производит доступ к пользовательским данным, пользовательским таблицам в локальном экземпляре SQL Server.

    1 = чтение

    0 = нет

    Базовый тип данных: int

    TableHasColumnSet

    Таблица

    Таблица содержит набор столбцов.

    0 = False

    1 = True

    Дополнительные сведения см. в разделе Использование наборов столбцов.

    Cardinality

    Таблица (системная или определяемая пользователем), представление или индекс

    Количество строк в указанном объекте.

    Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

Типы возвращаемых данных

sql_variant

Исключения

Возвращает значение NULL в случае ошибки или в случае, если у вызывающей стороны отсутствует разрешение на просмотр объекта.

Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения. Это значит, что встроенные функции, создающие метаданные (например, OBJECTPROPERTYEX), могут возвращать значение NULL, если у пользователя нет разрешения на доступ к объекту. Дополнительные сведения см. в разделе Настройка видимости метаданных.

Замечания

Компонент Компонент Database Engine предполагает, что объект с идентификатором object_id находится в контексте текущей базы данных. Запрос, который ссылается на object_id в другой базе данных, вернет значение NULL или неверный результат. Например: в следующем запросе контекст текущий базы данных — база данных master. Компонент Компонент Database Engine попытается вернуть значение свойства для указанного аргумента object_id в этой базе данных, а не в той, которая указана в запросе. Запрос возвращает неверные результаты, потому что представление vEmployee не содержится в базе данных master.

USE master;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'AdventureWorks2012.HumanResources.vEmployee'), 'IsView');
GO

OBJECTPROPERTY(view_id, 'IsIndexable') может потреблять значительные ресурсы компьютера, т.к. для вычисления свойства IsIndexable необходимы синтаксический анализ определения представления, нормализация и частичная оптимизация. Даже если свойство IsIndexable определяет, что таблица или представление могут быть проиндексированы, фактическое создание индекса может завершиться ошибкой, если не выполняются требования к ключу индекса. Дополнительные сведения см. в разделе CREATE INDEX (Transact-SQL).

Вызов OBJECTPROPERTYEX (table_id, 'TableHasActiveFulltextIndex') вернет значение 1 (True), если хотя бы один из столбцов таблицы был добавлен для индексирования. Заполнение полнотекстового индекса становится активным, как только для индексирования добавлен хотя бы один столбец.

К результирующему набору применяются ограничения на видимость метаданных. Дополнительные сведения см. в разделе Настройка видимости метаданных.

Примеры

А.Определение базового типа объекта

В следующем примере производится создание синонима MyEmployeeTable для таблицы Employee в базе данных AdventureWorks2012 , а затем для него определяется базовый тип.

USE AdventureWorks2012;
GO
CREATE SYNONYM MyEmployeeTable FOR HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX ( object_id(N'MyEmployeeTable'), N'BaseType')AS [Base Type];
GO

Результирующий набор показывает, что базовым типом соответствующего объекта, таблицы Employee, является пользовательская таблица.

Base Type

--------

U

Б.Получение значения свойства

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

USE AdventureWorks2012;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'HumanResources.Employee'), N'TABLEUPDATETRIGGERCOUNT');
GO

В.Поиск таблиц с ограничением FOREIGN KEY

В следующих примерах для возврата всех таблиц с ограничением внешнего ключа используется свойство TableHasForeignKey.

USE AdventureWorks2012;
GO
SELECT name, object_id, schema_id, type_desc
FROM sys.objects 
WHERE OBJECTPROPERTYEX(object_id, N'TableHasForeignKey') = 1
ORDER BY name;
GO

См. также

Справочник

CREATE SYNONYM (Transact-SQL)

Функции метаданных (Transact-SQL)

OBJECT_DEFINITION (Transact-SQL)

OBJECT_ID (Transact-SQL)

OBJECT_NAME (Transact-SQL)

sys.objects (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

TYPEPROPERTY (Transact-SQL)