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 » Mit Datenbankobjekten arbeiten » Mit berechneten Spalten arbeiten

 

Werte in berechnete Spalten einfügen und aktualisieren

Im Hinblick auf das Einfügen von Informationen in berechnete Spalten und ihre Aktualisierungen ist Folgendes zu beachten:

  • Direkte Einfügungen und Aktualisierungen   Sie sollten die Anweisungen INSERT oder UPDATE nicht benutzen, um Werte in berechnete Spalten einzufügen, da die Werte die beabsichtigte Berechnung möglicherweise nicht reflektieren. Außerdem könnten manuell eingefügte oder aktualisierte Daten in berechneten Spalten später durch eine Neuberechnung wieder geändert werden.

  • Spaltenabhängigkeiten   Es wird ausdrücklich davon abgeraten, Trigger zu verwenden, um den Wert einer Spalte zu setzen, die in der Definition einer berechneten Spalte referenziert wird (z.B. einen NULL-Wert in einen Nicht-NULL-Wert ändern), weil dies dazu führen kann, dass der Wert in der berechneten Spalte nicht die gewünschte Berechnung widerspiegelt.

  • Auflisten von Spaltennamen   Sie müssen in INSERT-Anweisungen für Tabellen mit berechneten Spalten immer explizit die Spaltennamen angeben.

  • Trigger   Sie können Trigger für eine berechnete Spalte definieren, damit eine INSERT- oder UPDATE-Anweisung in diesen Spalten die Trigger auslöst.

Auch wenn Sie INSERT-, UPDATE- oder LOAD TABLE-Anweisungen verwenden können, um Werte in berechnete Spalten einzufügen, so ist dies weder die empfohlene noch die beabsichtigte Anwendungsart für diese Funktion.

Die LOAD TABLE-Anweisung ermöglicht die optionale Berechnung von berechneten Spalten. Das Unterdrücken von Berechnungen während eines Ladevorgangs beschleunigt möglicherweise die Durchführung von komplexen Entlade-/Aktualisierungssequenzen. Das kann auch nützlich sein, wenn der Wert einer berechneten Spalte konstant bleiben muss, selbst wenn sich der COMPUTE-Ausdruck auf einen nicht-deterministischen Wert bezieht, wie z.B. CURRENT TIMESTAMP.

Vermeiden Sie es, die Werte von abhängigen Spalten in Triggern zu ändern, weil dadurch der Wert in der berechneten Spalte möglicherweise inkonsistent in Bezug zur Spaltendefinition wird.

Wenn eine berechnete Spalte x von einer Spalte y abhängt, die als nicht-NULL deklariert ist, wird der Versuch, y auf NULL zu setzen, mit einem Fehler verworfen, bevor Trigger ausgelöst werden.