OBJECT_ID (Transact-SQL)

Mis à jour : 17 juillet 2006

Retourne 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.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

ms190328.note(fr-fr,SQL.90).gifImportant :
Les objets qui ne sont pas compris dans l'étendue du schéma, comme les déclencheurs DDL, ne peuvent pas être interrogés à l'aide de OBJECT_ID. Concernant les objets qui ne figurent pas dans l'affichage catalogue sys.objects, vous pouvez obtenir le numéro d'identification de ces objets en interrogeant l'affichage catalogue approprié. Par exemple, pour retourner le numéro d'identification d'objet d'un déclencheur DDL, utilisez SELECT OBJECT_ID FROM sys.triggers WHERE name = 'DatabaseTriggerLog'.

Syntaxe

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

Arguments

  • 'object_name'
    Objet à utiliser. object_name est de type varchar ou nvarchar. Si object_name est de type varchar, il est implicitement converti en type nvarchar. La spécification des noms de la base de données et du schéma est facultative.
  • 'object_type'
    Type de l'objet défini avec l'étendue du schéma. object_type est de type varchar ou nvarchar. Si object_type est de type varchar, il est implicitement converti en type nvarchar. Pour obtenir la liste des types d'objets, consultez la colonne type de sys.objects (Transact-SQL).

Exceptions

Retourne NULL en cas d'erreur.

Dans SQL Server 2005, un utilisateur peut voir uniquement les métadonnées des éléments sécurisables qui lui appartiennent ou pour lesquels il dispose d'un droit d'accès. 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. Pour plus d'informations, consultez Configuration de la visibilité des métadonnées et Dépannage de la visibilité des métadonnées.

Notes

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. Les fonctions intégrées doivent toujours être suivies de parenthèses.

Lorsqu'un nom de table temporaire est spécifié, le nom de la base de données doit figurer avant le nom de la table temporaire, à moins que la base de données active soit tempdb. Par exemple, 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. Pour plus d'informations, consultez Expressions (Transact-SQL) et WHERE (Transact-SQL).

Types de retour

int

Exemples

A. Retour de l'identificateur d'un objet spécifié

L'exemple suivant retourne l'ID d'objet de la table Production.WorkOrder de la base de données AdventureWorks.

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

B. Vérification de l'existence d'un objet

L'exemple suivant vérifie l'existence d'une table spécifiée en vérifiant que la table a un identificateur d'objet. Si la table existe, elle est supprimée. Si elle n'existe pas, l'instruction DROP TABLE n'est pas exécutée.

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

C. Utilisation de OBJECT_ID pour spécifier la valeur d'un paramètre d'une fonction système

L'exemple suivant retourne des informations pour tous les index et partitions de la table Person.Address dans la base de données AdventureWorks à l'aide de la fonction sys.dm_db_index_operational_stats.

ms190328.note(fr-fr,SQL.90).gifImportant :
Lorsque vous utilisez les fonctions Transact-SQL DB_ID et OBJECT_ID pour obtenir la valeur d'un paramètre, assurez-vous toujours que l'ID retourné est valide. 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. La fonction sys.dm_db_index_operational_stats interprète la valeur NULL comme une valeur générique qui désigne toutes les bases de données ou tous les objets. 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.
DECLARE @db_id int;
DECLARE @object_id int;
SET @db_id = DB_ID(N'AdventureWorks');
SET @object_id = OBJECT_ID(N'AdventureWorks.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

Voir aussi

Référence

Fonctions de métadonnées (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_db_index_operational_stats
OBJECT_DEFINITION (Transact-SQL)
OBJECT_NAME (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Nouveau contenu :
  • Ajout de la section Exceptions.

14 avril 2006

Contenu mis à jour :
  • L'exemple C a été corrigé.