Что делает OBJECT_ID в SQL Server?

Я пытаюсь использовать OBJECT_ID и нашел следующую запись в MSDN:

"Возвращает идентификационный номер объекта базы данных объекта в области схемы".

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

1 ответ

OBJECT_ID используется для уникальной идентификации объекта в системных базовых таблицах.

Это первичный ключ sys.sysschobjs базовая таблица, используемая sys.objects представление метаданных и появляется во многих других представлениях метаданных. например sys.partitions, Если вы не запрашиваете эти представления, то object_id не очень полезно, за исключением, возможно, при использовании в проверке существования объекта, как показано ниже.

IF OBJECT_ID('T', 'U') IS NULL
     /*Table T does not exist or no permissions*/

Объект области схемы - это объект, который принадлежит схеме (например, таблица, представление, хранимая процедура). В статье MSDN приведен пример объекта без схемы в триггерах DDL.

Ошибка при попытке указать схему при создании этих

CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/
ON DATABASE 
FOR DROP_SYNONYM
AS 
PRINT 'SomeTrigger'

Метаданные объектов без схемы все еще хранятся в sys.sysschobjs но не появляется в sys.objects Посмотреть.

Другие вопросы по тегам