OBJECT_ID (Transact-SQL)OBJECT_ID (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure даAzure Synapse Analytics (хранилище данных SQL) даParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Возвращает идентификационный номер объекта базы данных для объекта области схемы.Returns the database object identification number of a schema-scoped object.

Важно!

Запросы на объекты, не относящиеся к области схемы, например триггеры DDL, не могут выполняться с использованием OBJECT_ID.Objects that are not schema-scoped, such as DDL triggers, cannot be queried by using OBJECT_ID. Для объектов, не найденных в представлении каталога sys.objects, идентификационный номер проставляется с помощью запроса к соответствующему представлению каталога.For objects that are not found in the sys.objects catalog view, obtain the object identification numbers by querying the appropriate catalog view. Например, чтобы получить идентификационный номер триггера DDL, используйте инструкцию SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.For example, to return the object identification number of a DDL trigger, use SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.

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

СинтаксисSyntax

OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )  

АргументыArguments

' object_name '' object_name '
Объект, который должен использоваться.Is the object to be used. Аргумент object_name имеет тип varchar или nvarchar.object_name is either varchar or nvarchar. Если значение object_name имеет тип varchar, оно неявно преобразовывается в тип nvarchar.If object_name is varchar, it is implicitly converted to nvarchar. Не обязательно указывать имена базы данных и схемы.Specifying the database and schema names is optional.

' object_type '' object_type '
Объект области схемы.Is the schema-scoped object type. Аргумент object_type имеет тип varchar или nvarchar.object_type is either varchar or nvarchar. Если значение object_type имеет тип varchar, оно неявно преобразовывается в тип nvarchar.If object_type is varchar, it is implicitly converted to nvarchar. Список типов объектов см. в столбце type представления sys.objects (Transact-SQL).For a list of object types, see the type column in sys.objects (Transact-SQL).

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

intint

ИсключенияExceptions

Для пространственного индекса функция OBJECT_ID возвращает значение NULL.For a spatial index, OBJECT_ID returns NULL.

В случае ошибки возвращает значение NULL.Returns NULL on error.

Пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые пользователю были предоставлены разрешения.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. Это означает, что встроенные функции, создающие метаданные, такие как OBJECT_ID, могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект.This means that metadata-emitting, built-in functions such as OBJECT_ID may return NULL if the user does not have any permission on the object. Дополнительные сведения см. в разделе Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

RemarksRemarks

Если параметр системной функции является необязательным, то предполагаются текущие база данных, главный компьютер, пользователь сервера или пользователь базы данных.When the parameter to a system function is optional, the current database, host computer, server user, or database user is assumed. За встроенными функциями всегда должны следовать круглые скобки.Built-in functions must always be followed by parentheses.

Если указано имя временной таблицы, то имя базы данных должно стоять перед именем временной таблицы, если только текущей не является база данных tempdb.When a temporary table name is specified, the database name must come before the temporary table name, unless the current database is tempdb. Например: SELECT OBJECT_ID('tempdb..#mytemptable').For example: SELECT OBJECT_ID('tempdb..#mytemptable').

Системные функции можно использовать в списке выбора, в предложении WHERE и в любом месте, где разрешается использование выражений.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. Дополнительные сведения см. в статьях Выражения (Transact-SQL) и WHERE (Transact-SQL).For more information, see Expressions (Transact-SQL) and WHERE (Transact-SQL).

ПримерыExamples

A.A. Получение идентификатора указанного объектаReturning the object ID for a specified object

Следующий пример возвращает идентификатор объекта для таблицы Production.WorkOrder в базе данных AdventureWorks2012AdventureWorks2012.The following example returns the object ID for the Production.WorkOrder table in the AdventureWorks2012AdventureWorks2012 database.

USE master;  
GO  
SELECT OBJECT_ID(N'AdventureWorks2012.Production.WorkOrder') AS 'Object ID';  
GO  

Б.B. Проверка существования объектаVerifying that an object exists

Следующий пример проверяет существование указанной таблицы, проверяя наличие у таблицы идентификатора объекта.The following example checks for the existence of a specified table by verifying that the table has an object ID. Если таблица существует, то она удаляется.If the table exists, it is deleted. Если таблица не существует, то инструкция DROP TABLE не выполняется.If the table does not exist, the DROP TABLE statement is not executed.

USE AdventureWorks2012;  
GO  
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL  
DROP TABLE dbo.AWBuildVersion;  
GO  

В.C. Использование функции OBJECT_ID для указания параметра системной функцииUsing OBJECT_ID to specify the value of a system function parameter

В приведенном ниже примере возвращаются сведения для всех индексов и секций таблицы Person.Address в базе данных AdventureWorks2012AdventureWorks2012 с помощью функции sys.dm_db_index_operational_stats.The following example returns information for all indexes and partitions of the Person.Address table in the AdventureWorks2012AdventureWorks2012 database by using the sys.dm_db_index_operational_stats function.

Важно!

При использовании для возврата значений параметров функций DB_ID и OBJECT_ID языка Transact-SQLTransact-SQL необходимо убедиться в допустимости возвращаемого идентификатора.When you are using the Transact-SQLTransact-SQL functions DB_ID and OBJECT_ID to return a parameter value, always make sure that a valid ID is returned. Если имя базы данных или объекта не может быть найдено, например если база данных или объект не существуют или неправильно записаны, то обе функции возвратят значение NULL.If the database or object name cannot be found, such as when they do not exist or are spelled incorrectly, both functions will return NULL. Функция sys.dm_db_index_operational_stats интерпретирует значение NULL как значение шаблона, соответствующее всем базам данных или все объектам.The sys.dm_db_index_operational_stats function interprets NULL as a wildcard value that specifies all databases or all objects. Так как эта операция может быть непреднамеренной, примеры в этом разделе демонстрируют безопасный способ определения идентификаторов базы данных и объекта.Because this can be an unintentional operation, the examples in this section demonstrate the safe way to determine database and object IDs.

DECLARE @db_id int;  
DECLARE @object_id int;  
SET @db_id = DB_ID(N'AdventureWorks2012');  
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');  
IF @db_id IS NULL   
  BEGIN;  
    PRINT N'Invalid database';  
  END;  
ELSE IF @object_id IS NULL  
  BEGIN;  
    PRINT N'Invalid object';  
  END;  
ELSE  
  BEGIN;  
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);  
  END;  
GO  

Примеры: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) и Параллельное хранилище данныхParallel Data WarehouseExamples: Azure Synapse Analytics (хранилище данных SQL)Azure Synapse Analytics (SQL DW) and Параллельное хранилище данныхParallel Data Warehouse

Г. Получение идентификатора указанного объектаD: Returning the object ID for a specified object

Следующий пример возвращает идентификатор объекта для таблицы FactFinance в базе данных AdventureWorksPDW2012AdventureWorksPDW2012.The following example returns the object ID for the FactFinance table in the AdventureWorksPDW2012AdventureWorksPDW2012 database.

SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';  

См. также:See Also

Функции метаданных (Transact-SQL) Metadata Functions (Transact-SQL)
sys.objects (Transact-SQL) sys.objects (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL) sys.dm_db_index_operational_stats (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL) OBJECT_DEFINITION (Transact-SQL)
OBJECT_NAME (Transact-SQL)OBJECT_NAME (Transact-SQL)