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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Tabellen, Ansichten und Indizes » Berechnete Spalten

 

Berechnete Spalten ändern

Sie können den in einer berechneten Spalte verwendeten Ausdruck ändern oder entfernen.

Voraussetzungen

Sie müssen Eigentümer der Tabelle sein oder eines der folgenden Privilegien haben:

  • ALTER-Privileg für die Tabelle sowie entweder das COMMENT ANY OBJECT-Systemprivileg, das CREATE ANY OBJECT-Systemprivileg oder das CREATE ANY TABLE-Systemprivileg.
  • ALTER ANY TABLE-Systemprivileg
  • ALTER ANY OBJECT-Systemprivileg
 Aufgabe
  1. Stellen Sie eine Verbindung mit der Datenbank her.

  2. Führen Sie eine ALTER TABLE-Anweisung ähnlich der folgenden aus, um den Ausdruck für eine berechnete Spalte zu ändern:

    ALTER TABLE table-name
    ALTER column-name
    SET COMPUTE ( new-expression );
  3. Um eine Spalte in eine normale (nicht berechnete) Spalten zu konvertieren, müssen Sie eine ALTER TABLE-Anweisung ähnlich der folgenden ausführen:

    ALTER TABLE
    table-name
    ALTER column-name
    DROP COMPUTE;

Ergebnisse

Im Fall einer Änderung der Berechnung für die Spalte wird die Spalte beim Ausführen dieser Anweisung neu berechnet.

Falls eine berechneten Spalte in eine normale (nicht berechnete) Spalte konvertiert wird, werden vorhandene Werte in der Spalte weder beim Ausführen der Anweisung geändert noch danach automatisch aktualisiert.

Beispiel

Erstellen Sie eine Tabelle namens alter_compute_test, füllen Sie sie mit Daten und führen Sie eine Auswahlabfrage in der Tabelle durch, indem Sie die folgenden Anweisungen ausführen:

CREATE TABLE alter_compute_test (
   c1 INT,
   c2 INT
) ;
INSERT INTO alter_compute_test (c1) VALUES(100);
SELECT * FROM alter_compute_test ;

Beachten Sie, dass die Spalte c2 einen NULL-Wert zurückgibt. Ändern Sie die Spalte c2, damit daraus eine berechnete Spalte wird, füllen Sie die Spalte mit Daten und führen Sie eine weitere SELECT-Anweisung in der Tabelle alter_compute_test aus.

ALTER TABLE alter_compute_test
   ALTER c2
   SET COMPUTE ( DAYS ( '2001-01-01' , CURRENT DATE ) )
INSERT INTO alter_compute_test (c1) VALUES(200) ;
SELECT * FROM alter_compute_test ;

Die Spalte c2 enthält nun die Anzahl der Tage seit 2001-01-01. Danach ändern Sie Spalte c2 so, dass sie nicht mehr eine berechnete Spalte ist:

ALTER TABLE alter_compute_test
ALTER c2
DROP COMPUTE ;

 Siehe auch