ALTER TABLE ステートメント

CREATE TABLE ステートメントを使用してテーブルを作成した後に、テーブルのデザインを変更します。

注:  Microsoft Access データベース エンジンは、Microsoft Access データベース エンジン以外のデータベースでは ALTER TABLE 句やデータ定義言語ステートメントを使用できません。代わりに DAO の Create メソッドを使用してください。

構文

ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] |
ALTER COLUMN field type[(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 回だけ適用することができます。この制限を複数回実行しようすると、実行時エラーになります。



Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×