78 votes

Les vues sont-elles automatiquement mises à jour

Si je JOIN ou CROSS APPLY deux tables et VIEW , la vue sera-t-elle automatiquement mise à jour lorsque je mettrai à jour l'une des deux tables ou que j'ajouterai des enregistrements à l'une ou l'autre d'eux?

Ces nouveaux records apparaîtront-ils dans le VIEW ?

26voto

OTTA Points 843

Une vue est essentiellement une requête stockée, elle ne contient aucune donnée, donc non, elle ne sera pas mise à jour lorsque les tables sur lesquelles elle est construite le seront. Cependant, dès que vous référencez la vue, la requête sur laquelle elle est basée s'exécutera, vous verrez donc les modifications apportées aux tables de base.

6voto

yogen darji Points 2131

Oui, les enregistrements seront mis à jour à chaque fois.

Mais si vous modifiez la définition de la table. N'oubliez pas de voir refresh .

exec sp_refreshview @viewname

N'utilisez pas SELECT * dans la définition de la vue, utilisez plutôt column name

4voto

Programmerzzz Points 436

En ajoutant simplement à @Curt's Answer, si la mise à jour que vous avez apportée aux tables sous-jacentes ajoute ou supprime des données, la vue est automatiquement mise à jour avec les nouvelles données. Si vous ajoutez ou supprimez les colonnes des tables sous-jacentes (essentiellement la définition de la vue), vous devez exécuter la sp_RefreshView pour refléter le nouveau schéma dans votre vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X