OBJECTPROPERTYEX (Transact-SQL)
Mis à jour : 12 décembre 2006
Renvoie des informations concernant les objets étendus aux schémas dans la base de données actuelle. Pour obtenir la liste de ces objets, consultez sys.objects (Transact-SQL). OBJECTPROPERTYEX ne peut pas être utilisé pour des objets qui ne sont pas étendus aux schémas, tels que les déclencheurs DDL (Data Definition Language) et les notifications d'événements.
Conventions de la syntaxe de Transact-SQL
Syntaxe
OBJECTPROPERTYEX ( id , property )
Arguments
- id
Expression représentant l'ID de l'objet dans la base de données active. id est de type int et est considéré comme un objet étendu aux schémas dans le contexte de la base de données active.
property
Expression contenant les informations à renvoyer pour l'objet spécifié par id. Le type renvoyé est sql_variant. Le tableau qui suit indique le type de données de base pour chaque valeur de propriété.Remarque : Sauf indication contraire, NULL est retourné lorsque property n'est pas un nom de propriété valide, lorsque id n'est pas un ID d'objet valide, lorsque id est un type d'objet non pris en charge pour la valeur spécifiée de property, ou lorsque l'appelant n'est pas autorisé à consulter les métadonnées de l'objet. Nom de la propriété
Exceptions
Retourne la valeur NULL en cas d'erreur ou si un appelant n'est pas autorisé à afficher l'objet.
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 OBJECTPROPERTYEX, 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
Le moteur de base de données considère que object_id se situe dans le contexte de la base de données active. Une requête référençant un object_id dans une autre base de données renverra NULL ou des résultats incorrects. Par exemple, dans la requête qui suit, le contexte de base de données actuel est la base de données master
. Le moteur de base de données va tenter de renvoyer la valeur de propriété de l'identificateur object_id spécifié dans cette base de données et non pas dans la base de données indiquée dans la requête. La requête renvoie des résultats incorrects parce que la vue vEmployee
ne se trouve pas dans la base de données master
.
USE master;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'AdventureWorks.HumanResources.vEmployee'), 'IsView');
GO
OBJECTPROPERTY(view_id**,'IsIndexable'**) peut consommer des ressources système importantes car l'évaluation de la propriété IsIndexable nécessite l'analyse de la définition de la vue, sa normalisation et son optimisation partielle. Bien que la propriété IsIndexable identifie les tables ou les vues qui peuvent être indexées, la création réelle de l'index peut malgré tout échouer si certaines conditions de clé d'index ne sont pas remplies. Pour plus d'informations, consultez CREATE INDEX (Transact-SQL).
OBJECTPROPERTY (table_id**,'TableHasActiveFulltextIndex'**) renvoie la valeur 1 (true) lorsqu'au moins une colonne d'une table est ajoutée pour l'indexation. L'indexation de texte intégral est activée au niveau du remplissage dès l'ajout de la première colonne à indexer.
Des restrictions sur la visibilité des métadonnées sont appliquées à l'ensemble de résultats. Pour plus d'informations, consultez Configuration de la visibilité des métadonnées.
Types des valeurs renvoyées
sql_variant
Exemples
A. Recherche du type de base d'un objet
L'exemple qui suit crée un SYNONYM MyEmployeeTable
pour la table Employee
de la base de données AdventureWorks
, puis renvoie le type de base du SYNONYM.
USE AdventureWorks;
GO
CREATE SYNONYM MyEmployeeTable FOR HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX ( object_id(N'MyEmployeeTable'), N'BaseType')AS [Base Type];
GO
L'ensemble de résultats montre que le type de base de l'objet sous-jacent, la table Employee
, est une table utilisateur.
Base Type
--------
U
B. Renvoi d'une valeur de propriété
L'exemple suivant renvoie le nombre de déclencheurs UPDATE sur la table spécifiée.
USE AdventureWorks;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'HumanResources.Employee'), N'TABLEUPDATETRIGGERCOUNT');
GO
C. Recherche de tables comportant une contrainte FOREIGN KEY
L'exemple suivant utilise la propriété TableHasForeignKey
pour retourner toutes les tables comportant une contrainte FOREIGN KEY.
USE AdventureWorks;
GO
SELECT name, object_id, schema_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTYEX(object_id, N'TableHasForeignKey') = 1
ORDER BY name;
GO
Voir aussi
Référence
CREATE SYNONYM (Transact-SQL)
Fonctions de métadonnées (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL)
OBJECT_NAME (Transact-SQL)
sys.objects (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
TYPEPROPERTY (Transact-SQL)
Autres ressources
Séparation du schéma et de l'utilisateur
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
12 décembre 2006 |
|
17 juillet 2006 |
|
5 décembre 2005 |
|