OBJECT_ID (Transact-SQL)

 

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síBase de datos SQL de AzuresíAlmacenamiento de datos SQL de Azure síAlmacenamiento de datos paralelos

Devuelve el número de Id. del objeto de base de datos de un objeto de ámbito de esquema.

System_CAPS_ICON_important.jpg Importante


Los objetos que no están en el ámbito del esquema, por ejemplo los desencadenadores DDL, no se pueden consultar utilizando OBJECT_ID. Para los objetos que no se encuentran en el sys.objects vista de catálogo, obtenga los números de identificación de objeto consultando la vista de catálogo adecuado. Por ejemplo, para devolver el número de identificación de objeto de un desencadenador DDL, use SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.

Topic link icon Convenciones de sintaxis de Transact-SQL

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse  
  
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )  

' object_name '
Es el objeto que va a utilizarse. object_name sea varchar o nvarchar. Si object_name es varchar, se convierte implícitamente en nvarchar. Especificar los nombres de la base de datos y del esquema es opcional.

' object_type '
Es el tipo de objeto de ámbito del esquema. object_type sea varchar o nvarchar. Si object_type es varchar, se convierte implícitamente en nvarchar. Para obtener una lista de tipos de objetos, consulte la tipo columna en sys.objects (Transact-SQL).

int

Para un índice espacial, OBJECT_ID devuelve NULL.

Devuelve NULL si se produce un error.

Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas de emisión de metadatos, como OBJECT_ID, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto. Para obtener más información, consulte Metadata Visibility Configuration.

Cuando el parámetro de una función del sistema es opcional, se asumen la base de datos, el equipo host, el usuario del servidor o el usuario de la base de datos actuales. Las funciones integradas siempre deben ir seguidas de paréntesis.

Cuando se especifica un nombre de tabla temporal, el nombre de la base de datos debe preceder el nombre de la tabla temporal, a menos que la base de datos actual sea tempdb. Por ejemplo: SELECT OBJECT_ID('tempdb..#mytemptable').

Funciones de sistema se pueden usar en la lista de selección en la cláusula WHERE, y en cualquier lugar en que se permita una expresión. Para obtener más información, consulte expresiones (Transact-SQL) y donde (Transact-SQL).

A. Devolver el identificador de objeto de un objeto especificado

En este ejemplo se devuelve el Id. de objeto para la tabla Production.WorkOrder en la base de datos AdventureWorks2012.

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

B. Comprobar la existencia de un objeto

En el ejemplo siguiente se comprueba la existencia de una tabla especificada comprobando si la tabla tiene un identificador de objeto. Si la tabla existe, se elimina. Si la tabla no existe, la instrucción DROP TABLE no se ejecuta.

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

C. Usar OBJECT_ID para especificar el valor de un parámetro de función del sistema

En el ejemplo siguiente se devuelve información de todos los índices y particiones de la Person.Address tabla el AdventureWorks2012 base de datos mediante la sys.dm_db_index_operational_stats función.

System_CAPS_ICON_important.jpg Importante


Cuando utilice las funciones DB_ID y OBJECT_ID de Transact-SQL para devolver un valor de parámetro, asegúrese de que siempre se devuelva un Id. válido. Si el nombre de objeto o base de datos no se puede encontrar, por ejemplo, cuando no existe o se ha escrito incorrectamente, las dos funciones devolverán NULL. El sys.dm_db_index_operational_stats función interpreta NULL como un valor comodín que especifica todas las bases de datos o todos los objetos. Puesto que ésta puede ser una operación accidental, los ejemplos de esta sección demuestran una forma segura para determinar los Id. de bases de datos y objetos.

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  

D: devolver el identificador de objeto para un objeto especificado

En este ejemplo se devuelve el Id. de objeto para la tabla FactFinance en la base de datos AdventureWorksPDW2012.

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

Funciones de metadatos (Transact-SQL)
Sys.Objects (Transact-SQL)
Sys.dm_db_index_operational_stats (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
Object_name (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: