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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Retorna o número de identificação do banco de dados do objeto de escopo de esquema.Returns the database object identification number of a schema-scoped object.

Importante

Os objetos que não são de escopo de esquema, como gatilhos DDL, não podem ser consultados com o uso de OBJECT_ID.Objects that are not schema-scoped, such as DDL triggers, cannot be queried by using OBJECT_ID. Para objetos não encontrados na exibição do catálogo sys.objects, obtenha os números de identificação de objeto consultando a exibição do catálogo apropriada.For objects that are not found in the sys.objects catalog view, obtain the object identification numbers by querying the appropriate catalog view. Por exemplo, para retornar o número de identificação de objeto de um gatilho DDL, use 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``'.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

' object_name '' object_name '
É o objeto a ser usado.Is the object to be used. object_name é varchar ou nvarchar.object_name is either varchar or nvarchar. Se object_name for varchar, ele será convertido implicitamente em nvarchar.If object_name is varchar, it is implicitly converted to nvarchar. A especificação dos nomes de banco de dados e esquema é opcional.Specifying the database and schema names is optional.

' object_type '' object_type '
É o tipo do objeto no escopo do esquema.Is the schema-scoped object type. object_type é varchar ou nvarchar.object_type is either varchar or nvarchar. Se object_type for varchar, ele será convertido implicitamente em nvarchar.If object_type is varchar, it is implicitly converted to nvarchar. Para obter uma lista de tipos de objeto, consulte a coluna type em sys.objects (Transact-SQL).For a list of object types, see the type column in sys.objects (Transact-SQL).

Tipos de retornoReturn Types

intint

ExceçõesExceptions

Para um índice de espaço, OBJECT_ID retorna NULL.For a spatial index, OBJECT_ID returns NULL.

Retorna NULL em caso de erro.Returns NULL on error.

Um usuário só pode exibir metadados de protegíveis de sua propriedade ou para os quais recebeu permissão.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. Isso significa que funções internas que emitem metadados, como OBJECT_ID, poderão retornar o NULL se o usuário não tiver nenhuma permissão para o objeto.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. Para obter mais informações, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

RemarksRemarks

Quando o parâmetro para uma função de sistema for opcional, o banco de dados atual, o computador host, o usuário do servidor ou o usuário do banco de dados será presumido.When the parameter to a system function is optional, the current database, host computer, server user, or database user is assumed. As funções internas sempre devem ser seguidas por parênteses.Built-in functions must always be followed by parentheses.

Quando uma tabela temporária é especificada, o nome do banco de dados deve vir antes do nome da tabela temporária, a menos que o banco de dados seja tempdb.When a temporary table name is specified, the database name must come before the temporary table name, unless the current database is tempdb. Por exemplo: SELECT OBJECT_ID('tempdb..#mytemptable').For example: SELECT OBJECT_ID('tempdb..#mytemptable').

As funções de sistema podem ser usadas na lista de seleção, na cláusula WHERE e em qualquer local onde uma expressão for permitida.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. Para obter mais informações, consulte Expressões (Transact-SQL) e WHERE (Transact-SQL).For more information, see Expressions (Transact-SQL) and WHERE (Transact-SQL).

ExemplosExamples

A.A. Retornando a ID de um objeto especificadoReturning the object ID for a specified object

O exemplo seguinte retorna a ID de objeto para a tabela Production.WorkOrder do banco de dados 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.B. Verificando se um objeto existeVerifying that an object exists

O exemplo a seguir confirma a existência de uma tabela especificada ao verificar se ela tem uma ID de objeto.The following example checks for the existence of a specified table by verifying that the table has an object ID. Se a tabela existir, ela será excluída.If the table exists, it is deleted. Se a tabela não existir, a instrução DROP TABLE não será executada.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.C. Usando OBJECT_ID para especificar o valor de um parâmetro de função do sistemaUsing OBJECT_ID to specify the value of a system function parameter

O exemplo a seguir retorna informações de todos os índices e partições da tabela Person.Address do banco de dados AdventureWorks2012AdventureWorks2012 usando a função 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.

Importante

Quando você está usando as funções DB_ID e OBJECT_ID do Transact-SQLTransact-SQL para retornar um valor de parâmetro, sempre confirme se é retornada uma ID válida.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. Se o banco de dados ou nome de objeto não puder ser encontrado, por não existir ou por estar escrito incorretamente, ambas as funções retornarão 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. A função sys.dm_db_index_operational_stats interpreta NULL como um valor de curinga que especifica todos os bancos de dados ou todos os objetos.The sys.dm_db_index_operational_stats function interprets NULL as a wildcard value that specifies all databases or all objects. Como pode se tratar de uma operação não intencional, os exemplos nesta seção demonstram a maneira segura de determinar a identificação do banco de dados e do objeto.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  

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

D: Retornando a ID de um objeto especificadoD: Returning the object ID for a specified object

O exemplo seguinte retorna a ID de objeto para a tabela FactFinance do banco de dados 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';  

Consulte TambémSee Also

Funções de metadados (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)