Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Retorna o número de identificação do objeto de banco de dados de um objeto com escopo de esquema.
Objetos que não têm escopo de esquema, como gatilhos DDL (Data Definition Language), não podem ser consultados usando OBJECT_ID. Para objetos que não são encontrados na exibição de catálogo sys.objects , obtenha os números de identificação do objeto consultando a exibição de catálogo apropriada. Por exemplo, para retornar o número de identificação do objeto de um gatilho DDL, use SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'.
Transact-SQL convenções de sintaxe
Sintaxe
OBJECT_ID ( ' [ database_name . [ schema_name ] . | schema_name . ]
object_name' [ , 'object_type' ] )
Argumentos
N'object_name'
O objeto a ser usado. object_name é varchar ou nvarchar. Um valor varchar de object_name é implicitamente convertido em nvarchar. Especificar os nomes do banco de dados e do esquema é opcional.
N'object_type'
O tipo de objeto com escopo de esquema. object_type é varchar ou nvarchar. Um valor varchar de object_type é implicitamente convertido em nvarchar. Para obter uma lista de tipos de objeto, consulte a coluna type em sys.objects (Transact-SQL).
Tipos de devolução
int
Exceções
Para um índice espacial, OBJECT_ID retorna NULL.
Retorna NULL em caso de erro.
Um usuário só pode exibir os metadados de protegíveis que o usuário possui ou nos quais o usuário recebe permissão. Isso significa que funções internas emissoras de metadados podem OBJECT_ID retornar NULL se o usuário não tiver nenhuma permissão no objeto. Para obter mais informações, consulte Configuração de visibilidade de metadados.
Observações
Quando o parâmetro para uma função do sistema é opcional, o banco de dados atual, o computador host, o usuário do servidor ou o usuário do banco de dados é assumido. Você deve sempre seguir funções internas entre parênteses.
Quando um nome de tabela temporária é especificado, o nome do banco de dados deve vir antes do nome da tabela temporária, a menos que o banco de dados atual seja tempdb. Por exemplo:
SELECT OBJECT_ID('tempdb..#mytemptable');
As funções do sistema podem ser usadas na lista de seleção, na cláusula e em qualquer lugar onde WHERE uma expressão seja permitida. Para obter mais informações, consulte Expressões (Transact-SQL) e WHERE (Transact-SQL).
Exemplos
Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.
Um. Retornar a ID do objeto para um objeto especificado
O exemplo a Production.WorkOrder seguir retorna a ID do objeto para a AdventureWorks2025 tabela no banco de dados.
USE master;
GO
SELECT OBJECT_ID(N'AdventureWorks2022.Production.WorkOrder') AS 'Object ID';
GO
B. Verificar se um objeto existe
O exemplo a seguir verifica a existência de uma tabela especificada verificando se a tabela tem uma ID de objeto. Se a tabela existir, ela será excluída. Se a tabela não existir, a DROP TABLE instrução não será executada.
USE AdventureWorks2022;
GO
IF OBJECT_ID (N'dbo.AWBuildVersion', N'U') IS NOT NULL
DROP TABLE dbo.AWBuildVersion;
GO
C. Use OBJECT_ID para especificar o valor de um parâmetro de função do sistema
O exemplo a seguir retorna informações para todos os índices e partições da tabela no Person.Address banco de AdventureWorks2025 dados usando a função sys.dm_db_index_operational_stats.
Observação
Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Quando você usa as funções DB_ID Transact-SQL e OBJECT_ID para retornar um valor de parâmetro, sempre certifique-se de que uma ID válida seja retornada. Se o banco de dados ou o nome do objeto não puder ser encontrado, como quando eles não existirem ou estiverem escritos incorretamente, ambas as funções retornarão NULL. A sys.dm_db_index_operational_stats função é interpretada como um valor curinga NULL que especifica todos os bancos de dados ou todos os objetos. Como essa operação pode ser não intencional, o exemplo nesta seção demonstra a maneira segura de determinar IDs de banco de dados e objeto.
DECLARE @db_id INT;
DECLARE @object_id INT;
SET @db_id = DB_ID(N'AdventureWorks2022');
SET @object_id = OBJECT_ID(N'AdventureWorks2022.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 Synapse Analytics and Analytics Platform System (PDW)
D. Retornar a ID do objeto para um objeto especificado
O exemplo a seguir retorna a ID do objeto para a FactFinance tabela no banco de dados AdventureWorksPDW2022 .
SELECT OBJECT_ID('AdventureWorksPDW2012.dbo.FactFinance') AS 'Object ID';