Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Met à jour les métadonnées de la vue non liée au schéma spécifiée. Les métadonnées persistantes d'une vue peuvent devenir obsolètes en raison des modifications des objets sous-jacents dont dépend l'affichage.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Les arguments
[ @viewname = ] 'nom-vue'
Nom de la vue. @viewname est nvarchar, sans valeur par défaut. @viewname peut être un identificateur à plusieurs parties, mais ne peut faire référence qu’aux vues de la base de données active.
Valeurs des codes de retour
0 (réussite) ou un nombre différent de zéro (échec).
Notes
Si une vue n’est pas créée avec SCHEMABINDING, sp_refreshview devrait être exécutée lorsque des modifications sont apportées aux objets sous-jacents à la vue, ce qui affecte la définition de la vue. Sinon, la vue pourrait produire des résultats inattendus lors de la requête.
autorisations
Nécessite ALTER une autorisation sur la vue, ainsi REFERENCES que sur les types définis par l’utilisateur par l’utilisateur (Common Language Runtime) (CLR) ainsi que sur les collections de schémas XML que les colonnes de vue référencent.
Exemples
Les exemples de code de cet article utilisent les bases de données d'exemple AdventureWorks2025 ou AdventureWorksDW2025, que vous pouvez télécharger à partir de la page d'accueil Microsoft SQL Server Samples and Community Projects.
R. Mettre à jour les métadonnées d’une vue
L'exemple suivant actualise les métadonnées de la vue Sales.vIndividualCustomer.
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. Créer un script qui met à jour toutes les vues qui ont des dépendances sur un objet modifié
Supposez que la table Person.Person a été modifiée d'une manière qui affecte la définition de toute vue créée dessus. L'exemple suivant crée un script qui actualise les métadonnées de toutes les vues qui ont une dépendance envers une table Person.Person.
USE AdventureWorks2025;
GO
SELECT DISTINCT 'EXECUTE sp_refreshview ''' + name + ''''
FROM sys.objects AS so
INNER JOIN sys.sql_expression_dependencies AS sed
ON so.object_id = sed.referencing_id
WHERE so.type = 'V'
AND sed.referenced_id = OBJECT_ID('Person.Person');