Für den Versuch, das für eine Tabelle oder eine Ansicht definierte Schema zu ändern, ist es erforderlich, dass der Datenbankserver prüft, ob es abhängige Ansichten gibt, die von der Änderung berührt werden. Nachfolgend finden Sie Beispiele von Vorgängen, die ein Schema ändern:
Löschen einer Tabelle, Ansicht, materialisierten Ansicht oder Spalte
Umbenennen einer Tabelle, Ansicht, materialisierten Ansicht oder Spalte
Hinzufügen, Löschen oder Ändern von Spalten
Ändern des Datentyps, der Größe oder der Nullwertfähigkeit einer Spalte
Deaktivieren von Ansichten oder Abhängigkeiten von Tabellenansichten
Wenn Sie versuchen, einen Vorgang durchzuführen, der ein Schema ändert, geschieht Folgendes:
Der Datenbankserver erstellt eine Liste von Ansichten, die direkt oder indirekt von der zu ändernden Tabelle oder Ansicht abhängen. Ansichten mit dem Status DEAKTIVIERT werden ignoriert.
Falls es unter den abhängigen Ansichten materialisierte Ansichten gibt, schlägt die Anforderung fehl, ein Fehler wird gemeldet und die noch ausstehenden Ereignisse geschehen nicht. Sie müssen abhängige materialisierte Ansichten explizit deaktivieren, bevor Sie mit dem Schema-Änderungsvorgang fortfahren können. Weitere Hinweise finden Sie unter Materialisierte Ansichten aktivieren und deaktivieren.
Der Datenbankserver setzt exklusive Schemasperren für das zu ändernde Objekt und für alle abhängigen regulären Ansichten.
Der Datenbankserver setzt den Status aller abhängigen regulären Ansichten auf UNGÜLTIG.
Der Datenbankserver führt den Vorgang durch, der das Schema ändert. Falls der Vorgang fehlschlägt, werden die Sperren freigegeben, der Status der abhängigen regulären Ansichten wird auf GÜLTIG zurückgesetzt, ein Fehler wird gemeldet und der folgende Schritt wird nicht durchgeführt.
Der Datenbankserver kompiliert die abhängigen regulären Ansichten neu und setzt den Status jeder Ansicht auf GÜLTIG, wenn die Kompilation erfolgreich war. Falls die Kompilation für eine reguläre Ansicht fehlschlägt, bleibt der Status für diese Ansicht auf UNGÜLTIG gesetzt. Nachfolgende Anforderungen für eine reguläre Ansicht mit dem Status UNGÜLTIG führen dazu, dass der Datenbankserver eine erneute Kompilation der Ansicht versucht. Falls weitere Versuche fehlschlagen, ist wahrscheinlich eine Änderung der ungültigen Ansicht oder eines Objektes erforderlich, von dem die Ansicht abhängig ist.
Eine reguläre Ansicht kann Tabellen oder Ansichten referenzieren, einschließlich materialisierter Ansichten.
Wenn Sie das Schema einer Tabelle oder Ansicht ändern, kompiliert die Datenbank automatisch alle referenzierenden regulären Ansichten neu.
Wenn Sie eine Ansicht oder Tabelle deaktivieren oder löschen, werden alle abhängigen regulären Ansichten automatisch deaktiviert.
Sie können die DISABLE VIEW DEPENDENCIES-Klausel der ALTER TABLE-Anweisung verwenden, um abhängige reguläre Ansichten zu deaktivieren.
Eine materialisierte Ansicht kann nur Basistabellen referenzieren.
Schemaänderungen an einer Basistabelle sind nicht zulässig, wenn sie von aktivierten materialisierten Ansichten referenziert wird. Sie können der Tabelle allerdings Fremdschlüssel hinzufügen (Beispiel: ALTER TABLE ADD FOREIGN KEY).
Bevor Sie eine Tabelle löschen oder ändern, müssen Sie alle abhängigen materialisierten Ansichten deaktivieren oder löschen.
Die DISABLE VIEW DEPENDENCIES-Klausel der ALTER TABLE-Anweisung wirkt sich nicht auf materialisierte Ansichten aus. Um eine materialisierte Ansicht zu deaktiveren, müssen Sie die Anweisung ALTER MATERIALIZED VIEW ... DISABLE verwenden.
Wenn Sie eine materialisierte Ansicht deaktiviert haben, müssen Sie sie explizit reaktivieren, z.B. mit der ALTER MATERIALIZED VIEW ... ENABLE-Anweisung.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |