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

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data Warehouse ouiParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Renvoie le numéro d'identification d'un objet de la base de données pour un objet défini avec l'étendue d'un schéma.Returns the database object identification number of a schema-scoped object.

Important

Il n'est pas possible d'exécuter des requêtes sur des objets qui ne sont pas définis avec l'étendue d'un schéma, tels que des déclencheurs DDL, en utilisant OBJECT_ID.Objects that are not schema-scoped, such as DDL triggers, cannot be queried by using OBJECT_ID. Pour les objets qui ne figurent pas dans le sys.objects affichage catalogue, obtenir les numéros d’identification en interrogeant l’affichage catalogue approprié.For objects that are not found in the sys.objects catalog view, obtain the object identification numbers by querying the appropriate catalog view. Par exemple, pour retourner le numéro d’identification d’un déclencheur DDL, utilisez 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``'.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

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

ArgumentsArguments

' nom_objet '' object_name '
Est l’objet à utiliser.Is the object to be used. nom_objet est varchar ou nvarchar.object_name is either varchar or nvarchar. Si nom_objet est varchar, il est converti implicitement en nvarchar.If object_name is varchar, it is implicitly converted to nvarchar. La spécification des noms de la base de données et du schéma est facultative.Specifying the database and schema names is optional.

' object_type '' object_type '
Type de l'objet défini avec l'étendue du schéma.Is the schema-scoped object type. object_type est varchar ou nvarchar.object_type is either varchar or nvarchar. Si object_type est varchar, il est converti implicitement en nvarchar.If object_type is varchar, it is implicitly converted to nvarchar. Pour obtenir la liste des types d’objets, consultez la type colonne sys.objects ( Transact-SQL ) .For a list of object types, see the type column in sys.objects (Transact-SQL).

Types de retourReturn Types

intint

ExceptionsExceptions

Pour un index spatial, OBJECT_ID retourne la valeur NULL.For a spatial index, OBJECT_ID returns NULL.

Retourne NULL en cas d'erreur.Returns NULL on error.

Un utilisateur peut voir uniquement les métadonnées des éléments sécurisables qui lui appartiennent ou pour lesquels il dispose d'une autorisation.A user can only view the metadata of securables that the user owns or on which the user has been granted permission. Cela signifie que les fonctions intégrées générant des métadonnées, telles que OBJECT_ID, peuvent retourner la valeur NULL si l'utilisateur ne dispose d'aucune autorisation sur l'objet.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. Pour plus d'informations, consultez Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

NotesRemarks

Quand le paramètre d'une fonction système est facultatif, la base de données active, l'ordinateur hôte, l'utilisateur du serveur ou l'utilisateur de la base de données sont pris implicitement en considération.When the parameter to a system function is optional, the current database, host computer, server user, or database user is assumed. Les fonctions intégrées doivent toujours être suivies de parenthèses.Built-in functions must always be followed by parentheses.

Lorsqu’un nom de table temporaire est spécifié, le nom de la base de données doit être placée avant le nom de la table temporaire, sauf si la base de données actuelle est tempdb.When a temporary table name is specified, the database name must come before the temporary table name, unless the current database is tempdb. Par exemple : SELECT OBJECT_ID('tempdb..#mytemptable').For example: SELECT OBJECT_ID('tempdb..#mytemptable').

Les fonctions système peuvent être utilisées dans la liste de sélection, dans une clause WHERE, et partout où une expression est autorisée.System functions can be used in the select list, in the WHERE clause, and anywhere an expression is allowed. Pour plus d’informations, consultez Expressions ( Transact-SQL ) et où ( Transact-SQL ) .For more information, see Expressions (Transact-SQL) and WHERE (Transact-SQL).

ExemplesExamples

A.A. Renvoi de l'identificateur d'un objet spécifiéReturning the object ID for a specified object

L'exemple suivant renvoie l'ID d'objet de la table Production.WorkOrder de la base de données 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. Vérification de l'existence d'un objetVerifying that an object exists

L'exemple suivant vérifie l'existence d'une table spécifiée en vérifiant que la table a un identificateur d'objet.The following example checks for the existence of a specified table by verifying that the table has an object ID. Si la table existe, elle est supprimée.If the table exists, it is deleted. Si elle n'existe pas, l'instruction DROP TABLE n'est pas exécutée.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. Utilisation de OBJECT_ID pour spécifier la valeur d'un paramètre d'une fonction systèmeUsing OBJECT_ID to specify the value of a system function parameter

L’exemple suivant retourne des informations pour tous les index et partitions de la Person.Address de table dans le AdventureWorks2012AdventureWorks2012 base de données à l’aide de la sys.dm_db_index_operational_stats (fonction).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.

Important

Lorsque vous utilisez les fonctions Transact-SQLTransact-SQL DB_ID et OBJECT_ID pour obtenir la valeur d'un paramètre, assurez-vous toujours que l'ID retourné est valide.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 le nom de la base de données ou de l'objet est introuvable, par exemple s'il n'existe pas ou n'est pas correctement orthographié, les deux fonctions retournent la valeur 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. Le sys.dm_db_index_operational_stats fonction interprète NULL comme une valeur générique qui spécifie toutes les bases de données ou de tous les objets.The sys.dm_db_index_operational_stats function interprets NULL as a wildcard value that specifies all databases or all objects. Comme il peut s'agir d'une opération non intentionnelle, les exemples fournis dans cette section présentent une méthode sûre pour déterminer les ID de base de données et d'objet.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  

Exemples : Azure SQL Data WarehouseAzure SQL Data Warehouse et Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

D : retour de l’ID d’objet pour un objet spécifiéD: Returning the object ID for a specified object

L'exemple suivant renvoie l'ID d'objet de la table FactFinance de la base de données 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';  

Voir aussiSee Also

Fonctions de métadonnées ( 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)
Nom_objet ( Transact-SQL )OBJECT_NAME (Transact-SQL)