Partager via


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

s’applique à : SQL Server

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)