Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Systemproceduren sys.sp_refreshview uppdaterar metadata för den specificerade icke-schemabundna vyn. Beständiga metadata för en vy kan bli inaktuella på grund av ändringar i de underliggande objekt som vyn är beroende av.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_refreshview [ @viewname = ] N'viewname'
[ ; ]
Argumentpunkter
[ @viewname = ] N'viewname'
Namnet på vyn. @viewname är nvarchar, utan standard. @viewname kan vara en identifierare för flera delar, men kan bara referera till vyer i den aktuella databasen.
Returnera kodvärden
0 (lyckades) eller ett icke-nolltal (fel).
Anmärkningar
Om du inte skapar en vy med SCHEMABINDING, kör sp_refreshview när du gör ändringar i objekten som ligger under vyn och som påverkar definitionen av vyn. Annars kan vyn ge oväntade resultat när du frågar efter den.
Behörigheter
Kräver ALTER behörighet för vyn, samt REFERENCES behörighet för common language runtime (CLR) användardefinierade typer och XML-schemasamlingar som vykolumnerna refererar till.
Exempel
Kodexemplen i denna artikel använder AdventureWorks2025, AdventureWorksDW2025, eller AdventureWorksLT2025 exempeldatabasen, som du kan ladda ner från Azure Data SQL Samples Repository GitHub-arkivet.
A. Uppdatera metadata för en vy
I följande exempel uppdateras metadata för vyn Sales.vIndividualCustomer.
Anmärkning
I Azure SQL Database och SQL-databas i Microsoft Fabric är satsen USE inte tillgänglig. Koppla istället direkt till den avsedda databasen och kör resten av kodprovet.
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. Skapa ett skript som uppdaterar alla vyer som har beroenden för ett ändrat objekt
Anta att tabellen Person.Person ändrades på ett sätt som påverkar definitionen av eventuella vyer på den. Följande exempel skapar ett skript som uppdaterar metadata för alla vyer som beror på tabellen 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');