Notatka
Dostęp do tej strony wymaga autoryzacji. Może 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
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Magazyn w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Procedura przechowywana w systemie aktualizuje sys.sp_refreshview metadane dla określonego widoku niepowiązanego ze 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
sys.sp_refreshview [ @viewname = ] N'viewname'
[ ; ]
Argumenty (w programowaniu)
[ @viewname = ] N'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 nie utworzysz widoku z SCHEMABINDING, uruchom sp_refreshview się, gdy wprowadzasz zmiany w obiektach leżących u podstaw widoku, które wpływają na definicję widoku. W przeciwnym razie widok może zwracać nieoczekiwane wyniki 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 opisane w tym artykule korzystają z bazy , AdventureWorksDW2025, czyli AdventureWorksLT2025 przykładowej bazy AdventureWorks2025danych, którą możesz pobrać z repozytorium GitHub w repozytorium Azure Data SQL Samples Repository.
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 wpływa na definicję jakichkolwiek poglądów na jej temat. Poniższy przykład tworzy skrypt, który odświeża metadane dla wszystkich widoków zależnych 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)
- sys.sp_refreshsqlmodule (Transact-SQL)