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 » SQL Anywhere サーバ SQL の使用法 » テーブル、ビュー、インデックス » 計算カラム

 

計算カラムの変更

計算カラムで使用された式を変更または削除します。

前提条件

そのテーブルの所有者であるか、または次のいずれかの権限を持っていることが必要です。

  • そのテーブルに対する ALTER 権限に加え、COMMENT ANY OBJECT、CREATE ANY OBJECT、または CREATE ANY TABLE のシステム権限
  • ALTER ANY TABLE システム権限
  • ALTER ANY OBJECT システム権限
 ♦ タスク
  1. データベースに接続します。

  2. 次のような ALTER TABLE 文を実行して、計算カラムに使用する式を変更します。

    ALTER TABLE table-name
    ALTER column-name
    SET COMPUTE ( new-expression );
  3. カラムを通常のカラム(未計算)に変換するには、次のような ALTER TABLE 文を実行します。

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

結果

カラムの計算を変更する場合、この文を実行するとカラムは再計算されます。

計算済みのカラムを通常のカラム(未計算)に変更する場合、文を実行してもカラム内の既存の値は変更されないので、自動的に更新されません。

テーブル alter_compute_test を作成してデータを移植し、次の文を実行してテーブルのクエリを選択します。

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

カラム c2 は NULL 値を返すことに注意してください。カラム c2 を変更して計算カラムとして、カラムにデータを移植して、alter_compute_test テーブルで別の SELECT 文を実行します。

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 ;

カラム c2 に、2001 年 1 月 1 日以降の日数が入りました。次に、カラム c2 を計算カラムでないカラムに変更します。

ALTER TABLE alter_compute_test
ALTER c2
DROP COMPUTE ;

 参照