sys.sp_refreshview (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceEndpoint SQL analytics dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

La sys.sp_refreshview procédure stockée du système met à jour les métadonnées pour la vue spécifiée non liée au schéma. 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

sys.sp_refreshview [ @viewname = ] N'viewname'
[ ; ]

Les arguments

[ @viewname = ] N’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 vous ne créez pas de vue avec SCHEMABINDING, exécutez sp_refreshview lorsque vous effectuez des modifications aux objets sous-jacents à la vue qui affectent la définition de la vue. Sinon, la vue peut donner 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 la AdventureWorks2025base de données , AdventureWorksDW2025, ou AdventureWorksLT2025 exemple de base de données, que vous pouvez télécharger depuis le dépôt GitHub Azure Data SQL Samples Repository.

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é

Supposons que la table Person.Person ait été modifiée d’une manière qui influence la définition de toute opinion qui y est sujet. L’exemple suivant crée un script qui rafraîchit les métadonnées de toutes les vues qui dépendent de la 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');