Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Ändert eine zuvor erstellte Sicht. Darunter fallen auch indizierte Sichten. ALTER VIEW beeinflusst keine abhängigen gespeicherten Prozeduren oder Trigger und ändert keine Berechtigungen.
Transact-SQL-Syntaxkonventionen
Syntax
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
ALTER VIEW [ schema_name . ] view_name [ ( column_name [ ,...n ] ) ]
AS <select_statement>
[;]
Argumente
schema_name
Ist der Name des Schemas, zu dem die Sicht gehört.
view_name
Die zu ändernde Sicht.
column
Ist der Name von einer oder von mehreren, durch Trennzeichen voneinander getrennten Spalten, die Teil der angegebenen Sicht sein sollen.
Wichtig
Spaltenberechtigungen werden nur aufrechterhalten, wenn Spalten vor und nach ALTER VIEW Ausführung denselben Namen tragen.
Hinweis
In den Spalten für die Ansicht gelten die Berechtigungen für einen Spaltennamen unabhängig von der Quelle der zugrunde liegenden Daten für eine oder CREATE VIEW eine ALTER VIEW Anweisung. Wenn beispielsweise Berechtigungen in der Spalte SalesOrderID in einer CREATE VIEW Anweisung gewährt werden, kann eine ALTER VIEW Anweisung die Spalte SalesOrderID umbenennen, zum Beispiel in OrderRef, und behält dennoch die mit der Ansicht verbundenen Berechtigungen mit SalesOrderID.
ENCRYPTION
Gilt für: SQL Server 2008 (10.0.x) und höher sowie Azure SQL-Datenbank.
Verschlüsselt die Einträge in sys.syscomments , die den Text der ALTER VIEW Anweisung enthalten. Mithilfe von WITH ENCRYPTION kann verhindert werden, dass die Sicht als Teil der SQL Server-Replikation veröffentlicht wird.
SCHEMABINDING
Bindet die Sicht an das Schema der zugrunde liegenden Basistabellen. Wird SCHEMABINDING angegeben, ist es nicht möglich, Änderungen der Basistabellen auszuführen, die sich auf die Sichtdefinition auswirken würden. Die Sichtdefinition muss zuerst geändert oder gelöscht werden, um Abhängigkeiten von der zu ändernden Tabelle zu entfernen. Wenn Sie SCHEMABINDING verwenden, muss select_statement die zweiteiligen Namen (schema.object) der Tabellen, Sicht oder benutzerdefinierten Funktionen einschließen, auf die verwiesen wird. Alle Objekte, auf die verwiesen wird, müssen in derselben Datenbank vorhanden sein.
Sichten oder Tabellen, die Bestandteil einer mit der SCHEMABINDING-Klausel erstellten Sicht sind, können erst dann gelöscht werden, wenn die entsprechende Sicht gelöscht oder geändert wird, sodass die Schemabindung nicht mehr vorhanden ist. Andernfalls löst Datenbank-Engine einen Fehler aus. Außerdem scheitern die Ausführung von ALTER TABLE Anweisungen auf Tabellen, die an Ansichten mit Schema-Bindung teilnehmen, wenn diese Anweisungen die Ansichtsdefinition beeinflussen.
VIEW_METADATA
Gibt an, dass die Instanz von SQL Server die Metadateninformationen der Sicht anstelle der Basistabelle(n) an die DB-Library-, ODBC- und OLE DB-APIs zurückgibt, wenn Metadaten des Durchsuchenmodus für eine Abfrage angefordert werden, die auf die Sicht verweist. Metadaten für den Durchsuchenmodus sind zusätzliche Metadaten, die von der Instanz der Datenbank-Engine an die clientbasierten DB-Library-, ODBC- und OLE DB-APIs zurückgegeben werden. Mithilfe dieser Metadaten können die clientbasierten APIs aktualisierbare clientbasierte Cursors implementieren. Metadaten des Durchsuchenmodus enthalten Informationen zu der Basistabelle, zu der die Spalten im Resultset gehören.
Bei Sichten, die mit VIEW_METADATA erstellt wurden, geben die Metadaten des Durchsuchenmodus den Sichtnamen anstelle der Basistabellennamen zurück, wenn Spalten aus der Sicht im Resultset beschrieben werden.
Wenn eine Ansicht mit MIT VIEW_METADATA erstellt wird, sind alle ihre Spalten, außer einer Zeitstempelspalte, aktualisiert, wenn die Ansicht oder UPDATE ANSTELLE VON Triggers hatINSERT. Weitere Informationen finden Sie im Abschnitt Bemerkungen in CREATE VIEW (Transact-SQL).
AS
Die Aktionen, die die Sicht ausführen soll.
select_statement
Die SELECT-Anweisung, die die Sicht definiert.
MIT SCHECK-OPTION
Erzwingt, dass alle für die Sicht ausgeführten Datenänderungsanweisungen den Kriterien entsprechen müssen, die innerhalb von select_statement festgelegt wurden.
Hinweise
Für weitere Informationen siehe ALTER VIEWBemerkungen in CREATE VIEW (Transact-SQL).
Hinweis
Wenn die vorherige View-Definition mit MIT VERSCHLÜSSELUNG oder CHECK Option erstellt wurde, sind diese Optionen nur aktiviert, wenn sie in ALTER VIEWenthalten sind.
Wenn eine aktuell verwendete Ansicht mithilfe ALTER VIEWgeändert wird, übernimmt die Datenbank-Engine eine exklusive Schemasperre für die Ansicht. Wenn die Sperre erteilt wird und keine aktiven Benutzer*innen der Sicht vorhanden sind, löscht die Datenbank-Engine alle Kopien der Sicht aus dem Prozedurcache. Vorhandene Pläne, die auf die Sicht verweisen, bleiben im Cache, werden aber beim Aufrufen erneut kompiliert.
ALTER VIEW kann auf indizierte Ansichten angewendet werden; ALTER VIEW allerdings bricht bedingungslos alle Indizes in der Ansicht ab.
Berechtigungen
Zum Ausführen ALTER VIEWvon ALTER-Berechtigungen für OBJECT ist mindestens eine ALTER-Berechtigung erforderlich.
Beispiele
Im folgenden Beispiel wird eine Sicht mit allen Mitarbeitern und deren Anstellungsdaten mit der Bezeichnung EmployeeHireDate erstellt. Die Berechtigungen werden der Sicht erteilt, doch die Anforderungen werden geändert, sodass Mitarbeiter ausgewählt werden, deren Anstellungsdatum vor einem bestimmten Datum liegt. Dann wird die Sicht mithilfe von ALTER VIEW ersetzt.
USE AdventureWorks2022;
GO
CREATE VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID ;
GO
Die Sicht muss geändert werden, damit nur die Mitarbeiter enthalten sind, die vor 2002 eingestellt wurden. Wenn ALTER VIEW nicht verwendet wird, sondern stattdessen die Ansicht verworfen und neu erstellt wird, müssen die zuvor verwendete GRANT Anweisung und alle anderen Anweisungen, die mit Berechtigungen für diese Ansicht zu tun haben, erneut eingegeben werden.
ALTER VIEW HumanResources.EmployeeHireDate
AS
SELECT p.FirstName, p.LastName, e.HireDate
FROM HumanResources.Employee AS e JOIN Person.Person AS p
ON e.BusinessEntityID = p.BusinessEntityID
WHERE HireDate < CONVERT(DATETIME,'20020101',101) ;
GO
Weitere Informationen
CREATE TABLE (Transact-SQL)
CREATE VIEW (Transact-SQL)
DROP VIEW (Transact-SQL)
Erstellen einer gespeicherten Prozedur
SELECT (Transact-SQL)
EVENTDATA (Transact-SQL)
Vornehmen von Schemaänderungen in Veröffentlichungsdatenbanken