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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenintegrität gewährleisten » Tabellen- und Spalten-Integritätsregeln benutzen

 

CHECK-Integritätsregeln ändern und löschen

Die Änderung von Tabellen kann zu Konflikten mit anderen Benutzern der Datenbank führen. Obwohl Sie die Anweisung ALTER TABLE ausführen können, während andere Verbindungen aktiv sind, ist diese Anweisung gesperrt, wenn eine andere Verbindung die zu ändernde Tabelle benutzt. Bei großen Tabellen ist ALTER TABLE ein zeitaufwendiger Vorgang. Während die Anweisung ausgeführt wird, sind keine anderen Datenänderungsanforderungen in dieser Tabelle zulässig. Siehe ALTER TABLE-Anweisung.

Es gibt verschiedene Möglichkeiten, die vorhandenen CHECK-Integritätsregeln einer Tabelle zu ändern.

  • Sie können eine neue CHECK-Integritätsregel zu einer Tabelle oder zu einer einzelnen Spalte hinzufügen.

  • Sie können eine CHECK-Integritätsregel für eine Spalte löschen, indem Sie sie auf NULL setzen. Die folgende Anweisung zum Beispiel entfernt die CHECK-Integritätsregel aus der Spalte "Phone" in der Tabelle "Customers":

    ALTER TABLE Customers
    ALTER Phone CHECK NULL;
  • Sie können eine CHECK-Integritätsregel für eine Spalte auf die gleiche Art und Weise ersetzen, wie Sie eine CHECK-Integritätsregel hinzufügen. Die folgende Anweisung zum Beispiel fügt die CHECK-Integritätsregel der Spalte "Phone" in der Tabelle "Customers" hinzu bzw. ersetzt sie:

    ALTER TABLE Customers
    ALTER Phone
    CHECK ( Phone LIKE '___-___-____' );
  • Sie können eine CHECK-Integritätsregel ändern, die für die Tabelle definiert wurde:

    • Sie können mit ALTER TABLE und einer Klausel "ADD Tabellen_Integritätsregel" eine neue CHECK-Integritätsregel hinzufügen.

    • Wenn Sie Integritätsregelnamen festgelegt haben, können Sie einzelne Integritätsregeln ändern.

    • Wenn Sie keine Integritätsregelnamen festgelegt haben, können Sie alle vorhandenen CHECK-Integritätsregeln (einschließlich CHECK-Integritätsregeln für Spalten und CHECK-Integritätsregeln, die von Domänen geerbt wurden) mithilfe von ALTER TABLE DELETE CHECK löschen und dann neue CHECK-Integritätsregeln hinzufügen.

      So verwenden Sie die Anweisung ALTER TABLE mit der DELETE CHECK-Klausel:

      ALTER TABLE Tabellenname
      DELETE CHECK;

In Sybase Central können Sie sowohl CHECK-Integritätsregeln für Tabellen als auch solche für Spalten hinzufügen, ändern und löschen. Siehe Integritätsregeln verwalten.

Wenn eine Spalte aus einer Tabelle gelöscht wird, werden die CHECK-Integritätsregeln, die mit der in der Tabellen-Integritätsregel enthaltenen Spalte verbunden sind, nicht ebenfalls gelöscht. Dadurch, dass die Integritätsregeln nicht entfernt werden, wird bei jedem Versuch, Daten in die Tabelle einzufügen oder sogar nur aus der Tabelle abzurufen, die Fehlermeldung Column not found (Spalte nicht gefunden) ausgegeben.

Hinweis

Tabellen-CHECK-Integritätsregeln schlagen fehl, wenn der Wert FALSE zurückgegeben wird. Wenn die Bedingung den Wert UNKNOWN zurückgibt, hat dies die gleiche Wirkung wie die Rückgabe des Werts TRUE, und der Wert wird erlaubt.