Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Frissíti a megadott nem sémaalapú nézet metaadatait. A nézet állandó metaadatai elavulttá válhatnak azon mögöttes objektumok módosítása miatt, amelyektől a nézet függ.
Transact-SQL szintaxis konvenciók
Szemantika
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Érvek
[ @viewname = ] 'viewname'
A nézet neve. @viewnamenvarchar, alapértelmezés nélkül. @viewname többrészes azonosító lehet, de csak az aktuális adatbázisban lévő nézetekre hivatkozhat.
Kódértékek visszaadása
0 (sikeres) vagy nem nulla számot (hiba).
Megjegyzések
Ha egy nézetet nem hoznak létre , SCHEMABINDINGsp_refreshview akkor futtatni kell, amikor változtatják a nézet mögött álló objektumokat, ami befolyásolja a nézet definícióját. Ellenkező esetben a nézet váratlan eredményeket hozhat, amikor lekérdezed.
Engedélyek
Engedélyt ALTER igényel a nézethez, valamint REFERENCES engedélyt a közös nyelvű futás (CLR) felhasználó által definiált típusokhoz és XML sémagyűjteményekhez, amelyekre a nézeti oszlopok hivatkoznak.
Példák
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
Egy. Nézet metaadatainak frissítése
Az alábbi példa frissíti a nézet Sales.vIndividualCustomermetaadatait.
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. Olyan szkript létrehozása, amely frissíti a módosított objektumtól függő összes nézetet
Tegyük fel, hogy a táblát Person.Person úgy módosították, hogy az hatással lenne a rajta létrehozott nézetek definíciójára. Az alábbi példa egy szkriptet hoz létre, amely frissíti a metaadatokat az összes olyan nézethez, amely függ a táblától 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');