Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenbanken erstellen » Mit Datenbankobjekten arbeiten » Mit Ansichten arbeiten » Ansichtenabhängigkeiten

 

Abhängigkeiten und Vorgänge, die ein Schema ändern

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:

  1. 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.

  2. Der Datenbankserver setzt exklusive Schemasperren für das zu ändernde Objekt und für alle abhängigen regulären Ansichten.

  3. Der Datenbankserver setzt den Status aller abhängigen regulären Ansichten auf UNGÜLTIG.

  4. 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.

  5. 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.

Abhängigkeiten und Vorgänge, die ein Schema ändern (reguläre Ansichten)
  • 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.

Abhängigkeiten und Vorgänge, die ein Schema ändern (materialisierte Ansichten)
  • 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.