Cette documentation est archivée et n’est pas conservée.

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.

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL


OBJECTPROPERTYEX ( id , property )

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

ms188390.note(fr-fr,SQL.90).gifRemarque :
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é Type d'objet Description et valeurs renvoyées

BaseType

Tout objet étendu aux schémas

Identifie le type de base de l'objet. Lorsque l'objet spécifié est un SYNONYM, le type de base de l'objet sous-jacent est renvoyé.

Nonnull = Type d'objet.

Type de données de base : char(2)

CnstIsClustKey

Contrainte

Contrainte PRIMARY KEY avec un index cluster.

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsColumn

Contrainte

Contrainte CHECK, DEFAULT ou FOREIGN KEY sur une seule colonne.

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsDeleteCascade

Contrainte

Contrainte FOREIGN KEY avec l'option ON DELETE CASCADE.

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsDisabled

Contrainte

Contrainte désactivée

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsNonclustKey

Contrainte

Contrainte PRIMARY KEY avec un index non-cluster.

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsNotRepl

Contrainte

La contrainte est définie avec les mots clés NOT FOR REPLICATION.

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsNotTrusted

Contrainte

La contrainte a été activée sans vérification des lignes existantes. Il se peut donc qu'elle ne puisse pas contenir toutes les lignes.

1 = Vrai

0 = Faux

Type de données de base : int

CnstIsUpdateCascade

Contrainte

Contrainte FOREIGN KEY avec l'option ON UPDATE CASCADE.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsAfterTrigger

Déclencheur

Déclencheur AFTER.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsAnsiNullsOn

Fonction Transact-SQL, procédure Transact-SQL, déclencheur Transact-SQL, vue

Définition des valeurs ANSI NULL lors de la création.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsDeleteTrigger

Déclencheur

Déclencheur DELETE.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsFirstDeleteTrigger

Déclencheur

Premier déclencheur exécuté lorsqu'une instruction DELETE est exécutée sur la table.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsFirstInsertTrigger

Déclencheur

Premier déclencheur exécuté lorsqu'une instruction INSERT est exécutée sur la table.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsFirstUpdateTrigger

Déclencheur

Premier déclencheur exécuté lorsqu'une instruction UPDATE est exécutée sur la table.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsInsertTrigger

Déclencheur

Déclencheur INSERT.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsInsteadOfTrigger

Déclencheur

Déclencheur INSTEAD OF.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsLastDeleteTrigger

Déclencheur

Dernier déclencheur exécuté lorsqu'une instruction DELETE est exécutée sur la table.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsLastInsertTrigger

Déclencheur

Dernier déclencheur exécuté lorsqu'une instruction INSERT est exécutée sur la table.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsLastUpdateTrigger

Déclencheur

Dernier déclencheur exécuté lorsqu'une instruction UPDATE est exécutée sur la table.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsQuotedIdentOn

Fonction Transact-SQL, procédure Transact-SQL, déclencheur Transact-SQL, vue

Définition de QUOTED_IDENTIFIER lors de la création.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsStartup

Procédure

Procédure de démarrage.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsTriggerDisabled

Déclencheur

Déclencheur désactivé.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsTriggerNotForRepl

Déclencheur

Déclencheur défini comme NOT FOR REPLICATION.

1 = Vrai

0 = Faux

Type de données de base : int

ExecIsUpdateTrigger

Déclencheur

Déclencheur UPDATE.

1 = Vrai

0 = Faux

Type de données de base : int

HasAfterTrigger

Table, vue

La table ou la vue comporte un déclencheur AFTER.

1 = Vrai

0 = Faux

Type de données de base : int

HasDeleteTrigger

Table, vue

La table ou la vue comporte un déclencheur DELETE.

1 = Vrai

0 = Faux

Type de données de base : int

HasInsertTrigger

Table, vue

La table ou la vue comporte un déclencheur INSERT.

1 = Vrai

0 = Faux

Type de données de base : int

HasInsteadOfTrigger

Table, vue

La table ou la vue comporte un déclencheur INSTEAD OF.

1 = Vrai

0 = Faux

Type de données de base : int

HasUpdateTrigger

Table, vue

La table ou la vue comporte un déclencheur UPDATE.

1 = Vrai

0 = Faux

Type de données de base : int

IsAnsiNullsOn

Fonction Transact-SQL, procédure Transact-SQL, table, déclencheur Transact-SQL, vue

Spécifie que l'option ANSI NULLS de la table a la valeur ON. Toutes les comparaisons avec une valeur null produisent la valeur UNKNOWN. Ce paramètre s'applique à l'ensemble des expressions dans la définition de la table, y compris les colonnes et les contraintes calculées, aussi longtemps que la table existe.

1 = Vrai

0 = Faux

Type de données de base : int

IsCheckCnst

Tout objet étendu aux schémas

Contrainte CHECK.

1 = Vrai

0 = Faux

Type de données de base : int

IsConstraint

Tout objet étendu aux schémas.

Contrainte

1 = Vrai

0 = Faux

Type de données de base : int

IsDefault

Tout objet étendu aux schémas.

Valeur par défaut associée.

1 = Vrai

0 = Faux

Type de données de base : int

IsDefaultCnst

Tout objet étendu aux schémas

Contrainte DEFAULT.

1 = Vrai

0 = Faux

Type de données de base : int

IsDeterministic

Fonctions scalaires et fonctions table, vue

Propriété de déterminisme de la fonction ou de la vue.

1 = Déterministe

0 = Non déterministe

Type de données de base : int

IsExecuted

Tout objet étendu aux schémas

Spécifie quel objet peut être exécuté (vue, procédure, fonction ou déclencheur).

1 = Vrai

0 = Faux

Type de données de base : int

IsExtendedProc

Tout objet étendu aux schémas

Procédure étendue.

1 = Vrai

0 = Faux

Type de données de base : int

IsForeignKey

Tout objet étendu aux schémas

Contrainte FOREIGN KEY.

1 = Vrai

0 = Faux

Type de données de base : int

IsIndexed

Table, vue

Table ou vue comportant un index.

1 = Vrai

0 = Faux

Type de données de base : int

IsIndexable

Table, vue

Table ou vue dans laquelle un index peut être créé.

1 = Vrai

0 = Faux

Type de données de base : int

IsInlineFunction

Fonction

Fonction Inline.

1 = Fonction Inline

0 = Fonction non Inline

Type de données de base : int

IsMSShipped

Tout objet étendu aux schémas

Objet créé lors de l'installation de SQL Server 2005.

1 = Vrai

0 = Faux

Type de données de base : int

IsPrecise

Colonne calculée, fonction, type défini par l'utilisateur, vue

Indique si l'objet contient un calcul imprécis, tel que des opérations en virgule flottante.

1 = Précis

0 = Imprécis

Type de données de base : int

IsPrimaryKey

Tout objet étendu aux schémas

Contrainte PRIMARY KEY.

1 = Vrai

0 = Faux

Type de données de base : int

IsProcedure

Tout objet étendu aux schémas

Procédure.

1 = Vrai

0 = Faux

Type de données de base : int

IsQuotedIdentOn

Contrainte CHECK, définition DEFAULT, fonction Transact-SQL, procédure Transact-SQL, table, déclencheur Transact-SQL, vue

Spécifie que le paramètre d'identification entre guillemets des objets a la valeur ON. Les guillemets doubles délimitent les identificateurs dans toutes les expressions impliquées dans la définition de l'objet.

1 = Vrai

0 = Faux

Type de données de base : int

IsQueue

Tout objet étendu aux schémas

File d'attente Service Broker

1 = Vrai

0 = Faux

Type de données de base : int

IsReplProc

Tout objet étendu aux schémas.

Procédure de réplication.

1 = Vrai

0 = Faux

Type de données de base : int

IsRule

Tout objet étendu aux schémas

Règle associée.

1 = Vrai

0 = Faux

Type de données de base : int

IsScalarFunction

Fonction

Fonction à valeur scalaire.

1 = Fonction scalaire

0 = Fonction non scalaire

Type de données de base : int

IsSchemaBound

Fonction, vue

Fonction ou vue liée à un schéma, créée à l'aide de SCHEMABINDING.

1 = Fonction liée à un schéma

0 = Fonction non liée à un schéma

Type de données de base : int

IsSystemTable

Table

Table système.

1 = Vrai

0 = Faux

Type de données de base : int

IsSystemVerified

Colonne calculée, fonction, type défini par l'utilisateur, vue

Les propriétés de précision et de déterminisme de l'objet peuvent être vérifiées par SQL Server.

1 = Vrai

0 = Faux

Type de données de base : int

IsTable

Table

Table.

1 = Vrai

0 = Faux

Type de données de base : int

IsTableFunction

Fonction

Fonction table.

1 = Fonction table

0 = Fonction non-table

Type de données de base : int

IsTrigger

Tout objet étendu aux schémas

Déclencheur

1 = Vrai

0 = Faux

Type de données de base : int

IsUniqueCnst

Tout objet étendu aux schémas

Contrainte UNIQUE.

1 = Vrai

0 = Faux

Type de données de base : int

IsUserTable

Table

Table définie par l'utilisateur.

1 = Vrai

0 = Faux

Type de données de base : int

IsView

Vue

Vue.

1 = Vrai

0 = Faux

Type de données de base : int

OwnerId

Tout objet étendu aux schémas

Propriétaire de l'objet.

Le propriétaire du schéma n'est pas nécessairement le propriétaire de l'objet. Par exemple, les objets enfants (ceux où parent_object_id est non NULL) renvoient toujours le même ID de propriétaire que leur parent.
ms188390.note(fr-fr,SQL.90).gifRemarque :

Nonnull = ID d'utilisateur de base de données du propriétaire de l'objet.

NULL = Type d'objet non pris en charge, ou ID d'objet non valide.

Type de données de base : int

SchemaId

Tout objet étendu aux schémas

ID du schéma associé à l'objet.

Nonnull = ID de schéma de l'objet.

Type de données de base : int

SystemDataAccess

Fonction, vue

L'objet accède aux données système, aux catalogues système ou aux tables système virtuelles, dans l'instance locale de SQL Server.

0 = Aucune

1 = Lecture

Type de données de base : int

TableDeleteTrigger

Table

La table comporte un déclencheur DELETE.

>1 = ID du premier déclencheur du type spécifié.

Type de données de base : int

TableDeleteTriggerCount

Table

La table comporte le nombre de déclencheurs DELETE spécifié.

Nonnull = Nombre de déclencheurs DELETE

Type de données de base : int

TableFullTextBackgroundUpdateIndexOn

Table

L'index de mise à jour d'arrière-plan en texte intégral (suivi des modifications automatiques) est activé pour la table.

1 = VRAI

0 = FAUX

Type de données de base : int

TableFulltextCatalogId

Table

ID du catalogue de texte intégral dans lequel résident les données d'indexation de texte intégral de la table.

Différent de zéro = ID de catalogue de texte intégral associé à l'index unique qui identifie les lignes dans une table indexée en texte intégral.

0 = La table n'est pas indexée en texte intégral.

Type de données de base : int

TableFullTextChangeTrackingOn

Table

Le suivi des modifications de texte intégral est activé pour la table.

1 = VRAI

0 = FAUX

Type de données de base : int

TableFulltextDocsProcessed

Table

Nombre de lignes traitées depuis le démarrage de l'indexation en texte intégral. Dans une table en cours d'indexation pour une recherche en texte intégral, toutes les colonnes d'une ligne sont considérées comme faisant partie d'un même document à indexer.

0 = Aucune analyse ou indexation en texte intégral active n'est terminée.

> 0 = l'une des possibilités suivantes :

  • Nombre de documents traités depuis le début d'une modification de remplissage intégral, incrémentiel ou manuel.
  • Nombre de lignes traitées depuis l'activation de la modification du remplissage avec mise à jour de l'index en arrière-plan, depuis la modification du schéma d'index en texte intégral, depuis la reconstruction du catalogue en texte intégral, depuis que l'instance de SQL Server a redémarré, etc.

NULL = La table n'est pas indexée en texte intégral.

Type de données de base : int

TableFulltextFailCount

Table

Nombre de lignes que la recherche en texte intégral n'a pas indexées.

0 = Le remplissage est terminé.

>0 = L'une des possibilités suivantes :

  • Nombre de documents qui n'ont pas été indexés depuis le début d'une mise à jour du remplissage intégral, incrémentiel ou manuel.
  • Pour le suivi des modifications avec mise à jour de l'index en arrière-plan, nombre de lignes qui n'ont pas été indexées depuis le début du remplissage, ou depuis le redémarrage du remplissage. Ceci peut être provoqué par une modification du schéma, la reconstruction du catalogue, le redémarrage du serveur, etc.

NULL = La table n'est pas indexée en texte intégral.

Type de données de base : int

TableFulltextItemCount

Table

Nonnull = Nombre de lignes qui ont été correctement indexées en texte intégral.

NULL = La table n'est pas indexée en texte intégral.

Type de données de base : int

TableFulltextKeyColumn

Table

ID de la colonne associée à l'index de colonne unique qui fait partie de la définition de l'indexation de texte intégral.

0 = La table n'est pas indexée en texte intégral.

Type de données de base : int

TableFulltextPendingChanges

Table

Nombre d'entrées de suivi des modifications en attente de traitement.

0 = Le suivi des modifications n'est pas activé.

NULL = La table n'est pas indexée en texte intégral.

Type de données de base : int

TableFulltextPopulateStatus

Table

0 = Inactif.

1 = Remplissage complet en cours.

2 = Remplissage incrémentiel en cours.

3 = Propagation des changements suivis en cours.

4 = Mise à jour de l'index en arrière-plan en cours, par exemple le suivi des modifications automatiques.

5 = Indexation en texte intégral accélérée ou suspendue.

Type de données de base : int

TableHasActiveFulltextIndex

Table

La table dispose d'un index de texte intégral actif.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasCheckCnst

Table

La table comporte une contrainte CHECK.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasClustIndex

Table

La table comporte un index cluster.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasDefaultCnst

Table

La table comporte une contrainte DEFAULT.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasDeleteTrigger

Table

La table comporte un déclencheur DELETE.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasForeignKey

Table

La table comporte une contrainte FOREIGN KEY.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasForeignRef

Table

La table est référencée par une contrainte FOREIGN KEY.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasIdentity

Table

La table comporte une colonne d'identité.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasIndex

Table

La table comporte un index de type non défini.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasInsertTrigger

Table

L'objet comporte un déclencheur INSERT.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasNonclustIndex

Table

La table comporte un index non-cluster.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasPrimaryKey

Table

La table comporte une clé primaire.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasRowGuidCol

Table

La table comporte un ROWGUIDCOL pour une colonne uniqueidentifier .

1 = Vrai

0 = Faux

Type de données de base : int

TableHasTextImage

Table

La table comporte une colonne text, ntext ou image.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasTimestamp

Table

La table comporte une colonne timestamp.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasUniqueCnst

Table

La table comporte une contrainte UNIQUE.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasUpdateTrigger

Table

La table comporte un déclencheur UPDATE.

1 = Vrai

0 = Faux

Type de données de base : int

TableHasVarDecimalStorageFormat

Table

Table est activé pour le format de stockage vardecimal.

1 = True

0 = False

Pour obtenir des informations sur le format de stockage vardecimal, consultez Stockage des données décimales sous forme de colonne de longueur variable.

TableInsertTrigger

Table

La table comporte un déclencheur INSERT.

>1 = ID du premier déclencheur du type spécifié.

Type de données de base : int

TableInsertTriggerCount

Table

La table comporte le nombre de déclencheurs INSERT spécifié.

>0 = Nombre de déclencheurs INSERT.

Type de données de base : int

TableIsFake

Table

La table n'est pas réelle. Elle est matérialisée en interne sur demande par le moteur de base de données SQL Server 2005.

1 = Vrai

0 = Faux

Type de données de base : int

TableIsLockedOnBulkLoad

Table

La table est verrouillée en raison d'un travail bcp ou BULK INSERT.

1 = Vrai

0 = Faux

Type de données de base : int

TableIsPinned

Table

La table est épinglée pour être conservée dans le cache de données.

0 = Faux

Cette fonctionnalité n'est pas prise en charge par SQL Server 2005.

TableTextInRowLimit

Table

Cette table comporte un jeu d'options text in row.

> 0 = Nombre maximal d'octets autorisé pour text in row.

0 = L'option text in row n'est pas activée.

Type de données de base : int

TableUpdateTrigger

Table

La table comporte un déclencheur UPDATE.

> 1 = ID du premier déclencheur du type spécifié.

Type de données de base : int

TableUpdateTriggerCount

Table

La table comporte le nombre de déclencheurs UPDATE spécifié..

> 0 = Nombre de déclencheurs UPDATE.

Type de données de base : int

UserDataAccess

Fonction, vue

Indique que l'objet a accès aux données utilisateur, aux tables utilisateur, dans l'instance locale de SQL Server.

1 = Lecture

0 = Aucun

Type de données de base : int

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.

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.

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

Version Historique

12 décembre 2006

Nouveau contenu :
  • Ajout de la propriété TableHasVarDecimalStorageFormat, disponible dans le Service Pack 2.

17 juillet 2006

Nouveau contenu :
  • Ajout de la section Exceptions.

5 décembre 2005

Contenu modifié :
  • La définition des propriétés IsTableFunction et IsScalarFunction a été corrigée.
  • L'exemple C a été modifié.
Afficher: