Partager via


Règles relatives à la mise à jour des résultats (Visual Database Tools)

Dans de nombreux cas, vous pouvez mettre à jour l'ensemble des résultats affiché dans le volet Résultats, avec quelques exceptions.

En général, pour mettre à jour des résultats, le Concepteur de requêtes et de vues doit disposer de suffisamment d'informations pour identifier de façon unique la ligne de la table. C'est le cas par exemple si la requête inclut une clé primaire dans la liste de sortie. En outre, vous devez être autorisé à mettre à jour la base de données.

Si votre requête est basée sur une vue, vous devriez pouvoir la mettre à jour. Les mêmes règles s'appliquent, sauf qu'il s'agit des tables sous-jacentes de la vue et non simplement de la vue elle-même.

[!REMARQUE]

Le Concepteur de requêtes et de vues ne peut pas déterminer à l'avance si vous pouvez mettre à jour un ensemble de résultats basé sur une vue. En conséquence, il affiche toutes les vues, même celles que vous ne pouvez pas mettre à jour.

Le tableau suivant récapitule les cas spécifiques dans lesquels vous pourriez mettre à jour ou non des résultats de requête dans le volet Résultats. Dans de nombreux cas, c'est la base de données que vous utilisez qui décide si vous pouvez mettre à jour des résultats de requête.

Requête

Les résultats peuvent-ils être mis à jour ?

Requête basée sur une table dont la clé primaire figure dans la liste de sortie

Oui (sauf dans les cas répertoriés ci-dessous).

Requête basée sur une table n'ayant ni index unique ni clé primaire

Dépend de la requête et de la base de données. Certaines bases de données autorisent la mise à jour s'il y a suffisamment d'informations pour identifier des enregistrements de façon unique.

Requête basée sur plusieurs tables non jointes

Non.

Requête basée sur des données marquées en lecture seule dans la base de données

Non.

Requête basée sur une vue qui implique une table sans contrainte

Oui (sauf dans les cas répertoriés ci-dessous).

Requête basée sur des tables jointes avec une relation de type un-à-un

Oui (sauf dans les cas répertoriés ci-dessous).

Requête basée sur des tables jointes avec une relation de type un-à-plusieurs

Généralement, oui.

Requête basée sur trois tables ou plus entre lesquelles existe une relation plusieurs-à-plusieurs

Non.

Requête basée sur une table dans laquelle la mise à jour n'est pas autorisée

Suppression autorisée, mais mise à jour interdite.

Requête basée sur une table dans laquelle la suppression n'est pas autorisée

Mise à jour autorisée, mais suppression interdite.

Requête d'agrégation

Non.

Requête basée sur une sous-requête contenant des totaux ou des fonctions d'agrégation

Non.

Requête utilisant le mot clé DISTINCT pour exclure des lignes en double

Non.

Requête dont la clause FROM inclut une fonction définie par l'utilisateur qui renvoie un tableau et qui contient plusieurs instructions de sélection

Non.

Requête dont la clause FROM inclut une fonction définie par l'utilisateur en ligne

Oui.

En outre, il est quelquefois impossible de mettre à jour certaines colonnes spécifiques des résultats. La liste suivante indique des types de colonnes spécifiques impossibles à mettre à jour dans le volet Résultats.

  • Colonnes basées sur des expressions

  • Colonnes basées sur des fonctions scalaires définies par l'utilisateur

  • Lignes ou colonnes supprimées par un autre utilisateur

  • Lignes ou colonnes verrouillées par un autre utilisateur (en général, les lignes verrouillées peuvent être mises à jour dès qu'elles sont déverrouillées)

  • Colonnes de type Timestamp ou BLOB