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

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Devuelve el número de Id. del objeto de base de datos de un objeto de ámbito de esquema.Returns the database object identification number of a schema-scoped object.

Importante

Los objetos que no están en el ámbito del esquema, por ejemplo los desencadenadores DDL, no se pueden consultar utilizando OBJECT_ID.Objects that are not schema-scoped, such as DDL triggers, cannot be queried by using 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.For objects that are not found in the sys.objects catalog view, obtain the object identification numbers by querying the appropriate catalog view. 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``'.For example, to return the object identification number of a DDL trigger, use SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog``'.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

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

ArgumentosArguments

' object_name '' object_name '
Es el objeto que va a utilizarse.Is the object to be used. object_name sea varchar o nvarchar.object_name is either varchar or nvarchar. Si object_name es varchar, se convierte implícitamente en nvarchar.If object_name is varchar, it is implicitly converted to nvarchar. Especificar los nombres de la base de datos y del esquema es opcional.Specifying the database and schema names is optional.

' object_type '' object_type '
Es el tipo de objeto de ámbito del esquema.Is the schema-scoped object type. object_type sea varchar o nvarchar.object_type is either varchar or nvarchar. Si object_type es varchar, se convierte implícitamente en nvarchar.If object_type is varchar, it is implicitly converted to nvarchar. Para obtener una lista de tipos de objetos, consulte la tipo columna sys.objects ( Transact-SQL ) .For a list of object types, see the type column in sys.objects (Transact-SQL).

Tipos devueltosReturn Types

intint

ExcepcionesExceptions

Para un índice espacial, OBJECT_ID devuelve NULL.For a spatial index, OBJECT_ID returns NULL.

Devuelve NULL si se produce un error.Returns NULL on error.

Un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. 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.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 obtener más información, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

ComentariosRemarks

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.When the parameter to a system function is optional, the current database, host computer, server user, or database user is assumed. Las funciones integradas siempre deben ir seguidas de paréntesis.Built-in functions must always be followed by parentheses.

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.When a temporary table name is specified, the database name must come before the temporary table name, unless the current database is tempdb. Por ejemplo: SELECT OBJECT_ID('tempdb..#mytemptable').For example: 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.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. Para obtener más información, vea expresiones ( Transact-SQL ) y donde ( Transact-SQL ) .For more information, see Expressions (Transact-SQL) and WHERE (Transact-SQL).

EjemplosExamples

A.A. Devolver el identificador de objeto de un objeto especificadoReturning the object ID for a specified object

En este ejemplo se devuelve el Id. de objeto para la tabla Production.WorkOrder en la base de datos 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. Comprobar la existencia de un objetoVerifying that an object exists

En el ejemplo siguiente se comprueba la existencia de una tabla especificada comprobando si la tabla tiene un identificador de objeto.The following example checks for the existence of a specified table by verifying that the table has an object ID. Si la tabla existe, se elimina.If the table exists, it is deleted. Si la tabla no existe, la instrucción DROP TABLE no se ejecuta.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. Usar OBJECT_ID para especificar el valor de un parámetro de función del sistemaUsing OBJECT_ID to specify the value of a system function parameter

En el ejemplo siguiente se devuelve información de todos los índices y particiones de la Person.Address tabla el AdventureWorks2012AdventureWorks2012 base de datos mediante la sys.dm_db_index_operational_stats función.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

Cuando utilice las funciones DB_ID y OBJECT_ID de Transact-SQLTransact-SQL para devolver un valor de parámetro, asegúrese de que siempre se devuelva un Id. válido.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. 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.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. 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.The sys.dm_db_index_operational_stats function interprets NULL as a wildcard value that specifies all databases or all objects. 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.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  

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

D: devolver el identificador de objeto para un objeto especificadoD: Returning the object ID for a specified object

En este ejemplo se devuelve el Id. de objeto para la tabla FactFinance en la base de datos 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';  

Vea tambiénSee Also

Funciones de metadatos ( 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)