Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Aktualizuje metadane określonego widoku niezwiązanego schematem. Trwałe metadane widoku mogą stać się nieaktualne z powodu zmian w obiektach bazowych, od których zależy widok.
Transact-SQL konwencje składni
Składnia
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Argumenty (w programowaniu)
[ @viewname = ] "viewname"
Nazwa widoku. @viewname to nvarchar bez wartości domyślnej. @viewname może być identyfikatorem wieloczęściowym, ale może odwoływać się tylko do widoków w bieżącej bazie danych.
Zwracanie wartości kodu
0 (powodzenie) lub liczba niezerowa (niepowodzenie).
Uwagi
Jeśli widok nie jest tworzony z , SCHEMABINDINGsp_refreshview powinien być uruchamiany podczas wprowadzania zmian w obiektach leżących u podstaw widoku, co wpływa na definicję widoku. W przeciwnym razie widok może przynieść nieoczekiwane rezultaty podczas zapytania.
Uprawnienia
Wymaga ALTER uprawnień do widoku oraz REFERENCES uprawnień do typów zdefiniowanych przez użytkownika w języku common language (CLR) oraz kolekcji schematów XML, do których odnoszą się kolumny widoku.
Przykłady
Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.
Odp. Aktualizowanie metadanych widoku
Poniższy przykład odświeża metadane widoku Sales.vIndividualCustomer.
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. Tworzenie skryptu, który aktualizuje wszystkie widoki, które mają zależności od zmienionego obiektu
Załóżmy, że tabela Person.Person została zmieniona w sposób, który będzie miał wpływ na definicję wszystkich widoków, które są na niej tworzone. Poniższy przykład tworzy skrypt, który odświeża metadane dla wszystkich widoków, które mają zależność od tabeli 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');
Treści powiązane
- procedury składowane aparatu bazy danych (Transact-SQL)
- System procedur składowanych (Transact-SQL)
- sys.sql_zależności wyrażeń (Transact-SQL)
- sp_refreshsqlmodule (Transact-SQL)