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

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

6 голосов
/ 21 февраля 2012

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

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

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

1 Ответ

4 голосов
/ 21 февраля 2012

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.

...