Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido manualmente. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

OBJECT_ID (Transact-SQL)

Retorna o número de identificação do banco de dados do objeto de escopo de esquema.

Observação importante 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. 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. 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'.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

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

' object_name '

É o objeto a ser usado. object_name é varchar ou nvarchar. Se object_name for varchar, será convertido implicitamente em nvarchar. A especificação dos nomes de banco de dados e esquema é opcional.

' object_type '

É o tipo do objeto no escopo do esquema. object_type é varchar ou nvarchar. Se object_type for varchar, será convertido implicitamente em nvarchar. Para obter uma lista de tipos de objeto, consulte a coluna type em sys.objects (Transact-SQL).

Para um índice de espaço, OBJECT_ID retorna NULL.

Retorna NULL em caso de erro.

Um usuário só pode exibir metadados de protegíveis de sua propriedade ou para os quais recebeu permissão. 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. Para obter mais informações, consulte Configuração de visibilidade de metadados.

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. As funções internas sempre devem ser seguidas por parênteses.

Quando uma tabela temporária for especificada, o nome do banco de dados deverá vir antes do nome da tabela temporária, a menos que o banco de dados seja tempdb. Por exemplo: 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. Para obter mais informações, consulte Expressões (Transact-SQL) e WHERE (Transact-SQL).

A.Retornando a ID de um objeto especificado

O exemplo seguinte retorna a ID de objeto para a tabela Production.WorkOrder do banco de dados AdventureWorks2012.

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

B.Verificando se um objeto existe

O exemplo a seguir confirma a existência de uma tabela especificada ao verificar se ela tem uma ID de objeto. Se a tabela existir, ela será excluída. Se a tabela não existir, a instrução DROP TABLE não será executada.

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

C.Usando OBJECT_ID para especificar o valor de um parâmetro de função do sistema

O exemplo a seguir retorna informações de todos os índices e partições da tabela Person.Address do banco de dados AdventureWorks2012 usando a função sys.dm_db_index_operational_stats.

Observação importante Importante

Quando você está usando as funções DB_ID e OBJECT_ID do Transact-SQL para retornar um valor de parâmetro, sempre confirme se é retornada uma ID válida. 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. 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. 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.

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

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft