テーブル定義を変更します。
ALTER TABLE table-name {
add-clause
| modify-clause
| drop-clause
| rename-clause
}
add-clause :
ADD { column-definition | table-constraint }
modify-clause :
ALTER column-definition | sync-constraint
drop-clause : DROP { column-name | CONSTRAINT constraint-name }
rename-clause : RENAME { new-table-name | [ old-column-name TO ] new-column-name | CONSTRAINT old-constraint-name TO new-constraint-name }
column-definition : column-name data-type [ [ NOT ] NULL ] [ DEFAULT column-default ] [ UNIQUE ]
column-default : GLOBAL AUTOINCREMENT [ ( number ) ] | AUTOINCREMENT | CURRENT DATE | CURRENT TIME | CURRENT TIMESTAMP | NULL | NEWID( ) | constant-value
table-constraint : [ CONSTRAINT constraint-name ] { fkey-constraint | unique-key-constraint } [ WITH MAX HASH SIZE integer ]
fkey-constraint : [ NOT NULL ] FOREIGN KEY [ role-name ] ( ordered-column-list ) REFERENCES table-name ( column-name, ... ) [ CHECK ON COMMIT ]
unique-key-constraint : UNIQUE ( ordered-column-list )
ordered-column-list : ( column-name [ ASC | DESC ], ... )
sync-constraint :SYNCHRONIZE {ON| OFF|ALL|DOWNLOAD}
add-clause テーブルに新しいカラム制約またはテーブル制約を追加します。
テーブルに新しいカラム制約またはテーブル制約を追加します。
ADD column-definition 句 テーブルに新しいカラムを追加します。カラムにデフォルト値がある場合は、新しいカラムのすべてのローにそのデフォルト値が移植されます。 この句のキーワードとサブ句の詳細については、CREATE TABLE 文 [Ultra Light]を参照してください。
ADD table-constraint 句 テーブルに制約を追加します。オプションの制約名を使用すると、テーブル全体の制約を修正することなく、後で個々の制約を修正したり削除したりできます。この句のキーワードとサブ句の詳細については、CREATE TABLE 文 [Ultra Light]を参照してください。
新しいユニークな制約を追加する場合は、すべての制約カラムを非 NULL 可にする必要があります。ユニークな制約を追加するには、カラムを NOT NULL に変更してください。
Ultra Light では、プライマリキーを追加することはできません。
modify-clause 1 つのカラム制約を変更します。column-definition が ALTER 文の一部の場合には、プライマリキーは使用できません。必要に応じて、変更されるカラムのデータを新しいデータ型に変換します。変換エラーが発生すると、操作は失敗となり、テーブルは変更されません。 column-definition の詳細については、CREATE TABLE 文 [Ultra Light]を参照してください。
drop-clause カラム制約またはテーブル制約を削除します。
DROP column-name テーブルからカラムを削除します。カラムがインデックス、一意性制約、外部キー、またはプライマリキーに含まれている場合は、それらのオブジェクトを削除しないと、Ultra Light がカラムを削除できません。
DROP CONSTRAINT table-constraint テーブル定義から指定された制約を削除します。 table-constraint の詳細については、CREATE TABLE 文 [Ultra Light]を参照してください。
Ultra Light では、プライマリキーを削除することはできません。
rename-clause テーブル名、カラム名、制約名を変更します。
RENAME new-table-name テーブルの名前を new-table-name に変更します。古いテーブル名を使用しているアプリケーションは、修正する必要があります。古いテーブル名を自動的に割り当てられた外部キーは、名前を変更しません。
RENAME old-column-name TO new-column-name カラムの名前を new-column-name に変更します。古いカラム名を使用しているアプリケーションは、修正する必要があります。
RENAME old-constraint-name TO new-constraint-name 制約の名前を new-constraint-name に変更します。古い定数名を使用しているアプリケーションは、修正する必要があります。
Ultra Light では、プライマリキーの名前を変更することはできません。
column-constraint カラム制約は、データベース内のデータの整合性を保つために、カラムに格納できる値を制限します。カラム制約は UNIQUE である必要があります。
UNIQUE テーブル内の各ローをユニークに識別する 1 つまたは複数のカラムを識別します。テーブル内の異なるローが、指定されているすべてのカラムで同じ値を持つことはできません。1 つのテーブルに複数の一意性制約が存在することがあります。
sync-constraint 句 テーブルを同期可能にするかどうかおよびすべてのローをアップロードするか、テーブルへの変更だけをアップロードするか、テーブルへの変更をアップロードしないかを決定するための同期制約を指定します。
SYNCHRONIZE ON デフォルト設定 - テーブルを同期することができ、テーブルへの変更のみがアップロードで送信されます。
SYNCHRONIZE OFF テーブルを同期できず、テーブルをパブリケーションに含めるときにエラーが発生します。
SYNCHRONIZE ALL テーブルを同期することができ、テーブル内のすべてのローがアップロードで送信されます。この制約は、Ultra Light Java Edition データベースではサポートされていません。
SYNCHRONIZE DOWNLOAD テーブルを統合データベースへの変更と同期できますが、ローカルの変更はアップロードされません。
1 つの ALTER TABLE 文では、1 つの table-constraint または column-constraint だけを追加、変更、または削除できます。
役割名は外部キーの名前です。role-name の主な機能は、同じテーブルに対する 2 つの外部キーを区別することです。また、CONSTRAINT constraint-name を使用して外部キーに名前を付けることができます。ただし、両方のメソッドを使用して外部キーに名前を付けないでください。
テーブルまたはカラムの制約は MODIFY (変更) できません。制約を変更するには、古い制約を DELETE (削除) し、新しい制約を ADD (追加) します。
テーブルを対象とした文が、別の要求やクエリですでに参照されている場合、ALTER TABLE は実行できません。同様に、テーブルの変更中は、そのテーブルを参照する要求は処理されません。また、データベースにアクティブなクエリやコミットされていないトランザクションがある場合は ALTER TABLE を実行できません。
Ultra Light.NET の場合:すべてのデータオブジェクト (たとえば ULDataReader) に対して Dispose メソッドも呼び出さないと、この文を実行できません。ULBulkCopy.Dispose メソッド [Ultra Light.NET]を参照してください。
スキーマの変更が同時に開始された場合、文は解放されません。
次の文は、MyEmployees という架空のテーブルから Street カラムを削除します。
ALTER TABLE MyEmployees DROP Street |
次の例は、MyCustomers という架空のテーブルの Street カラムを変更して、約 50 文字を格納するようにします。
ALTER TABLE MyCustomers ALTER Street CHAR(50) |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |