Ersetzt eine Ansichtsdefinition durch eine geänderte Version.
ALTER VIEW [ owner.]view-name [ ( column-name, ... ) ] AS select-statement [ WITH CHECK OPTION ]
ALTER VIEW [ owner.]view-name { SET HIDDEN | RECOMPILE | DISABLE | ENABLE }
AS-Klausel Die SELECT-Anweisung, auf der die Ansicht basiert. Die SELECT-Anweisung darf sich nicht auf lokale temporäre Tabellen beziehen. Außerdem kann query-expression eine GROUP BY-, HAVING-, WINDOW- oder ORDER BY-Klausel enthalten sowie UNION, EXCEPT, INTERSECT oder einen allgemeinen Tabellenausdruck.
Die Semantik von Abfragen bestimmt, dass die Reihenfolge der zurückgegebenen Zeilen nicht definiert ist, es sei denn, die Abfrage kombiniert eine ORDER BY-Klausel mit einer TOP- oder FIRST-Klausel in der SELECT-Anweisung. Wenn eine ORDER BY-Klausel entweder mit einer TOP- oder mit einer FIRST-Klausel angegeben wird, gibt die Abfrage die obersten n Zeilen bzw. die erste Zeile zurück.
WITH CHECK OPTION-Klausel Die WITH CHECK OPTION-Klausel weist alle Aktualisierungen und Einfügungen der Ansicht zurück, die nicht den Kriterien der von den für query-expression festgelegten Werten entsprechen.
SET HIDDEN-Klausel Verwenden Sie die SET HIDDEN-Klausel, um die Definition der Ansicht zu verschleiern und die Ansicht zu verbergen, z.B. in Sybase Central. Explizite Referenzen zur Ansicht funktionieren allerdings weiterhin.
Der SET HIDDEN-Vorgang ist irreversibel.
RECOMPILE-Klausel Verwenden Sie die RECOMPILE-Klausel, um Spaltendefinitionen für die Ansicht neu zu erstellen. Diese Klausel hat dieselbe Funktion wie die ENABLE-Klausel, nur dass Sie erstere auf eine Ansicht anwenden können, die nicht deaktiviert ist. Wenn eine Ansicht neu kompiliert wird, stellt der Datenbankserver die Spaltenberechtigungen auf der Grundlage der Spaltennamen wieder her, die in der neuen Ansichtsdefinition genannt sind. Die vorhandenen Berechtigung gehen verloren, wenn eine Spalte nach der Neukompilierung nicht mehr existiert.
DISABLE-Klausel Verwenden Sie die DISABLE-Klausel, um die Verwendung der Ansicht durch den Datenbankserver zu deaktivieren.
ENABLE-Klausel Verwenden Sie die ENABLE-Klausel, um eine deaktivierte Ansicht zu aktivieren. Ein Aktivieren der Ansicht bewirkt, dass der Datenbankserver die Spaltendefinitionen für die Ansicht neu erstellt. Bevor Sie eine Ansicht aktivieren, müssen Sie alle Ansichten aktivieren, von denen diese abhängt.
Wenn Sie eine ALTER VIEW-Anweisung für eine Ansicht ausführen, die einen oder mehr INSTEAD OF-Trigger hat, wird ein Fehler zurückgegeben. Sie müssen den Trigger löschen, bevor die Ansicht gelöscht oder geändert werden kann.
Wenn Sie eine Ansicht eines anderen Eigentümers ändern, müssen Sie den Namen qualifizieren, indem Sie den Eigentümer eingeben (z.B. GROUPO.ViewSalesOrders). Wenn Sie den Namen nicht qualifizieren, sucht der Datenbankserver nach einer Ihnen gehörenden Ansicht mit diesem Namen und ändert sie. Wenn eine solche nicht vorhanden ist, wird ein Fehler zurückgegeben.
Wenn Sie eine Ansicht ändern, werden bestehende Berechtigungen für die Ansicht beibehalten und müssen nicht neu zugewiesen werden. Anstatt die ALTER VIEW-Anweisung zu verwenden, können Sie die Ansicht auch löschen und neu erstellen, indem Sie die DROP VIEW- bzw. die CREATE VIEW-Anweisung verwenden. Wenn Sie dies tun, müssen allerdings die Berechtigungen für die Ansicht neu zugeordnet werden.
Nachdem die Ansichtsänderung mit Syntax 1 abgeschlossen ist, rekompiliert der Datenbankserver die Ansicht. Wenn es abhängige Ansichten gibt, versucht der Datenbankserver diese je nach Typ der durchgeführten Änderung ebenfalls zu kompilieren. Wenn Sie eine Änderung durchgeführt haben, die sich auf eine abhängige Ansicht auswirkt, müssen Sie möglicherweise auch die Definition für die abhängige Ansicht ändern.
Wenn die SELECT-Anweisung, die die Ansicht definiert, ein Sternchen (*) enthält, kann sich die Anzahl der Spalten in der Ansicht ändern, wenn Spalten in den Basistabellen hinzugefügt oder gelöscht wurden. Die Namen und Datentypen der Ansichtsspalten können sich ebenfalls ändern.
Syntax 1 Diese Syntax wird verwendet, um die Struktur der Ansicht zu ändern. Anders als bei Tabellenänderungen, wo sich die Änderungen auf einzelne Spalten beschränken können, erfordert das Ändern der Struktur einer Ansicht die Ersetzung der gesamten Ansichtsdefinition durch eine neue Definition, ähnlich wie beim Erstellen der Ansicht.
Syntax 2 Diese Syntax wird verwendet, um die Attribute für die Ansicht zu ändern, die z.B. festlegen, ob die Ansichtsdefinition verborgen ist.
Wenn Sie SET HIDDEN verwenden, kann die Ansicht entladen und in andere Datenbanken geladen werden. Wenn SET HIDDEN verwendet wird, ist die Definition der Ansicht bei der Fehlerbehandlung mit dem Debugger nicht zu sehen und sie wird auch nicht in den Prozedurprofilen angezeigt. Wenn Sie die Definition einer verborgenen Ansicht ändern wollen, müssen Sie die Ansicht löschen und mit der CREATE VIEW-Anweisung erneut erstellen.
Nachdem Sie die DISABLE-Klausel verwendet haben, steht die Ansicht dem Datenbankserver zur Beantwortung von Abfragen nicht mehr zur Verfügung. Das Deaktivieren einer Ansicht ähnelt ihrem Löschen, mit dem Unterschied, dass die Ansichtsdefinition in der Datenbank bleibt. Das Deaktivieren einer Ansicht deaktiviert auch etwaige abhängige Ansichten. Daher erfordert die DISABLE-Klausel einen exklusiven Zugriff nicht nur auf die Ansicht, die deaktiviert wird, sondern auch auf alle abhängigen Ansichten, da diese ja auch deaktiviert werden.
Sie müssen Eigentümer einer Ansicht sein oder DBA-Berechtigung haben.
Automatisches Festschreiben (Autocommit).
Alle Prozeduren und Trigger werden vom Speicher entladen, sodass jede Prozedur oder Trigger, der die Ansicht referenziert, der neuen Ansichtsdefinition entspricht. Das Entladen und Laden von Prozeduren und Triggern kann sich auf die Performance auswirken, wenn Sie Ansichten häufig ändern.
SQL/2008 Erweiterung des Herstellers.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |