Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Hiermee worden de metagegevens bijgewerkt voor de opgegeven niet-schemagebonden weergave. Permanente metagegevens voor een weergave kunnen verouderd raken vanwege wijzigingen in de onderliggende objecten waarvan de weergave afhankelijk is.
Transact-SQL syntaxis-conventies
Syntaxis
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Argumenten
[ @viewname = ] 'viewname'
De naam van de weergave. @viewname is nvarchar, zonder standaardinstelling. @viewname kan een id met meerdere onderdelen zijn, maar kan alleen verwijzen naar weergaven in de huidige database.
Codewaarden retourneren
0 (geslaagd) of een niet-nulnummer (fout).
Opmerkingen
Als een weergave niet is gemaakt met SCHEMABINDING, sp_refreshview moet worden uitgevoerd wanneer wijzigingen worden aangebracht in de objecten die onder de weergave liggen, wat van invloed is op de definitie van de weergave. Anders kan de weergave onverwachte resultaten opleveren wanneer er een query wordt uitgevoerd.
Machtigingen
Hiervoor is alter-machtiging vereist voor de machtiging Weergave en VERWIJZINGEN voor door de gebruiker gedefinieerde typen (CLR) van Common Language Runtime en XML-schemaverzamelingen waarnaar wordt verwezen door de weergavekolommen.
Voorbeelden
Eén. De metagegevens van een weergave bijwerken
In het volgende voorbeeld worden de metagegevens voor de weergave Sales.vIndividualCustomervernieuwd.
USE AdventureWorks2022;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. Een script maken waarmee alle weergaven met afhankelijkheden van een gewijzigd object worden bijgewerkt
Stel dat de tabel Person.Person is gewijzigd op een manier die van invloed is op de definitie van weergaven die erop zijn gemaakt. In het volgende voorbeeld wordt een script gemaakt waarmee de metagegevens worden vernieuwd voor alle weergaven die afhankelijk zijn van de tabel 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');