Règles de mise à jour des résultats (Visual Database Tools)
Dans de nombreux cas, vous pouvez mettre à jour le jeu de résultats affiché dans le volet des résultats . Toutefois, dans certains cas, vous ne pouvez pas.
En général, pour mettre à jour les résultats, le concepteur de requêtes et de vues doit disposer d’informations suffisantes pour identifier de manière unique la ligne de la table. Par exemple, si la requête inclut une clé primaire dans la liste de sortie. En outre, vous devez disposer d’une autorisation suffisante pour mettre à jour la base de données.
Si votre requête est basée sur une vue, vous pourrez peut-être la mettre à jour. Les mêmes consignes s'appliquent, à l'exception qu'elles concernent les tables sous-jacentes de la vue, et non pas uniquement la vue elle-même.
Note
Le Concepteur de requêtes et de vues ne peut pas déterminer à l’avance si vous pouvez mettre à jour un jeu de résultats en fonction d’une vue. Par conséquent, elle affiche toutes les vues, même si vous ne pourrez peut-être pas les mettre à jour.
Le tableau suivant récapitule les instances spécifiques dans lesquelles vous pouvez et ne pas être en mesure de mettre à jour les résultats de la requête dans le volet Résultats. Dans de nombreux cas, la base de données que vous utilisez détermine si vous pouvez mettre à jour les résultats de la requête.
Requête | Les résultats peuvent-ils être mis à jour ? |
---|---|
Requête basée sur une table avec clé primaire dans la liste de sortie | Oui (sauf comme indiqué ci-dessous). |
Requête basée sur une table sans index unique et sans clé primaire | Dépend de la requête et de la base de données. Certaines bases de données autorisent les mises à jour si des informations suffisantes sont disponibles pour identifier de manière unique les enregistrements. |
Requête basée sur plusieurs tables qui ne sont pas 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 contraintes | Oui (sauf comme indiqué ci-dessous). |
Requête basée sur des tables jointes avec une relation un-à-un | Oui (sauf comme indiqué ci-dessous). |
Requête basée sur des tables jointes avec une relation un-à-plusieurs | Habituellement. |
Requête basée sur trois tables ou plus dans lesquelles il existe une relation plusieurs-à-plusieurs | Non. |
Requête basée sur une table pour laquelle l’autorisation de mise à jour n’est pas accordée | Peut supprimer, mais pas mettre à jour. |
Requête basée sur une table pour laquelle l’autorisation de suppression n’est pas accordée | Peut mettre à jour, mais pas supprimer. |
Requête d’agrégation | Non. |
Requête basée sur une sous-requête qui contient des totaux ou des fonctions d’agrégation | Non. |
Requête qui inclut le mot clé DISTINCT pour exclure les lignes dupliquées | Non. |
Requête dont la clause FROM inclut une fonction définie par l’utilisateur qui retourne une table et la fonction définie par l’utilisateur contient plusieurs instructions select | Non. |
Requête dont la clause FROM inclut une fonction inline définie par l’utilisateur | Oui. |
En outre, vous ne pourrez peut-être pas mettre à jour des colonnes spécifiques dans les résultats de la requête. La liste suivante récapitule des types spécifiques de colonnes que vous ne pouvez pas 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 (les lignes verrouillées peuvent généralement être mises à jour dès qu’elles sont déverrouillées)
Horodatage ou colonnes BLOB
Voir aussi
Rubriques mode d'emploi pour concevoir des requêtes et des vues (Visual Database Tools)