CREATE TABLE ステートメントを使用してテーブルを作成した後に、テーブルのデザインを変更します。
注: Microsoft Access データベース エンジンは、Microsoft Access データベース エンジン以外のデータベースでは ALTER TABLE 句やデータ定義言語ステートメントを使用できません。 代わりに DAO の Create メソッドを使用してください。
構文
ALTER TABLE テーブル {ADD {COLUMN フィールド型[(size)] [NOT NULL] [CONSTRAINT index] |
ALTER COLUMN フィールドの種類[(size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }ALTER TABLE ステートメントでは、次の引数を使用します。
引数 |
説明 |
table |
変更されるテーブルの名前です。 |
field |
table に追加または削除されるフィールドの名前です。 または、table で変更されるフィールドの名前です。 |
type |
field のデータ型です。 |
size |
文字数単位のフィールド サイズです (テキスト型とバイナリ型のフィールドのみ)。 |
index |
field のインデックスです。 |
multifieldindex |
table に追加される複数フィールド インデックス定義です。 |
indexname |
削除される複数フィールド インデックスの名前です。 |
解説
ALTER TABLE ステートメントを使用すると、いくつかの方法で既存のテーブルを変更できます。 次の操作を行うことができます。
-
ADD COLUMN を使用して新しいフィールドをテーブルに追加します。 フィールド名、データ型、および (テキスト型とバイナリ型のフィールドの場合) 省略可能なサイズを指定します。 たとえば、次のステートメントでは、Notes という 25 文字のテキスト型フィールドを Employees テーブルに追加します。
ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
そのフィールドにインデックスを定義することもできます。
フィールドに対して NOT NULL を指定した場合、そのフィールドに有効なデータを指定するには新しいレコードが必要です。
-
既存のフィールドのデータ型を変更するには、ALTER COLUMN を使用します。 フィールド名、新しいデータ型、および (テキスト型とバイナリ型のフィールドの場合) 省略可能なサイズを指定します。 たとえば、次のステートメントでは、Employees テーブルの ZipCode というフィールドの (元は整数として定義されていた) データ型を 10 文字のテキスト型フィールドに変更しています。
ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
-
複数フィールド インデックスを追加するには、ADD CONSTRAINT を使用します。
-
フィールドを削除するには、DROP COLUMN を使用します。 フィールドの名前のみを指定します。
-
複数フィールド インデックスを削除するには、DROP CONSTRAINT を使用します。 予約語の CONSTRAINT に続けて、インデックス名のみを指定します。
注:
-
同時に複数のフィールドまたはインデックスを追加または削除することはできません。
-
CREATE INDEX ステートメントを使用して、単一フィールドまたは複数フィールドのインデックスをテーブルに追加することができます。また、ALTER TABLE または DROP ステートメントを使用して、ALTER TABLE や CREATE INDEX で作成されたインデックスを削除することができます。
-
NOT NULL を 1 つのフィールドまたは名前付きの CONSTRAINT 句内で使用し、CONSTRAINT という名前の 1 つのフィールドまたは複数のフィールドに適用することができます。 ただし、フィールドに NOT NULL 制限を 1 回だけ適用することができます。 この制限を複数回実行しようすると、実行時エラーになります。
-