Что делает 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
Посмотреть.