Anteckning
Å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
Uppdaterar metadata för den angivna 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
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Argumentpunkter
[ @viewname = ] "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 en vy inte skapas med SCHEMABINDING sp_refreshview
, ska köras när ändringar görs i objekten som ligger bakom vyn, vilket påverkar definitionen av vyn. Annars kan vyn ge oväntade resultat när den efterfrågas.
Behörigheter
Kräver ALTER-behörighet för vyn och behörigheten REFERENSER för användardefinierade typer av common language runtime (CLR) och XML-schemasamlingar som refereras till av vykolumnerna.
Exempel
A. Uppdatera metadata för en vy
I följande exempel uppdateras metadata för vyn Sales.vIndividualCustomer
.
USE AdventureWorks2022;
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
har ändrats på ett sätt som påverkar definitionen av alla vyer som skapas på den. I följande exempel skapas ett skript som uppdaterar metadata för alla vyer som har ett beroende av tabellen Person.Person
.
USE AdventureWorks2022;
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');