Im Hinblick auf das Einfügen von Informationen in berechnete Spalten und ihre Aktualisierungen ist Folgendes zu beachten:
Direkte Einfügungen und Aktualisierungen Eine INSERT- oder UPDATE-Anweisung kann einen Wert für eine berechnete Spalte angeben. Dieser Wert wird jedoch ignoriert. Der Server berechnet den Wert für berechnete Spalten basierend auf der COMPUTE-Spezifikation und verwendet den berechneten Wert an Stelle des in der INSERT- oder UPDATE-Anweisung angegebenen Werts.
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.
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 durch die Wertänderung 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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |