Freigeben über


sp_refreshview (Transact-SQL)

Aktualisiert: 14. April 2006

Aktualisiert die Metadaten für die angegebene nicht schemagebundene Sicht. Permanente Metadaten für eine Sicht sind möglicherweise aufgrund von Änderungen an den zugrunde liegenden Objekten, von denen die Sicht abhängt, nicht mehr aktuell.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_refreshview [ @viewname = ] 'viewname' 

Argumente

  • [ @viewname= ] 'viewname'
    Der Name der Sicht. viewname ist vom Datentyp nvarchar und weist keinen Standardwert auf. viewname kann ein mehrteiliger Bezeichner sein, der aber nur auf Sichten in der aktuellen Datenbank verweisen kann.

Rückgabecodewerte

0 (Erfolg) oder eine Zahl ungleich Null (Fehler)

Hinweise

Wenn eine Sicht nicht mit Schemabindung erstellt wurde, sollte sp_refreshview ausgeführt werden, nachdem Änderungen an den der Sicht zugrunde liegenden Objekten vorgenommen wurden, die die Definition der Sicht betreffen. Andernfalls liefert die Abfrage der Sicht möglicherweise unerwartete Ergebnisse.

Berechtigungen

Erfordert die ALTER-Berechtigung für die Sicht und die REFERENCES-Berechtigung für CLR-benutzerdefinierte (Common Language Runtime) Typen und XML-Schemaauflistungen, auf die durch die Sichtspalten verwiesen wird.

Beispiele

A. Aktualisieren der Metadaten einer Sicht

Im folgenden Beispiel werden die Metadaten für die Sicht Sales.vIndividualCustomer aktualisiert.

USE AdventureWorks;
GO
exec sp_refreshview N'Sales.vIndividualCustomer';

B. Erstellen eines Skripts, das alle Sichten aktualisiert, die Abhängigkeiten von einem geänderten Objekt aufweisen

Angenommen, die Person.Contact-Tabelle wurde auf eine Weise geändert, die sich auf die Definition von Sichten auswirkt, die für die Tabelle erstellt wurden. Im folgenden Beispiel wird ein Skript erstellt, das die Metadaten aller Sichten aktualisiert, die eine Abhängigkeit von der Person.Contact-Tabelle aufweisen.

USE AdventureWorks;
GO
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' 
FROM sys.objects so INNER JOIN sys.sql_dependencies sd 
ON so.object_id = sd.object_id 
WHERE type = 'V' 
AND sd.referenced_major_id = object_id('Person.Contact') 

Siehe auch

Verweis

Gespeicherte Prozeduren für das Datenbankmodul (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Neuer Inhalt:
  • Der Abschnitt mit Hinweisen wurde hinzugefügt, um den Grund für die Verwendung von sp_refreshview zu erläutern.
  • Beispiel B wurde hinzugefügt.
Geänderter Inhalt:
  • Beispiel A wurde aktualisiert.