ALTER TABLE でテーブルのカラムを追加・変更・削除する

ALTER TABLE でテーブルのカラムを追加・変更・削除する

前回 「 他のテーブルから SELECT INTO でテーブルを作成する 」 では、 SELECT INTO 文を使って、クエリーの結果セットを元にテーブルを作成しました。

今回は、ALTER TALBE を使って、既存のテーブルのカラムを追加・変更・削除してみましょう。

こちら のスクリプトを実行して、テーブルを再生成しておいてください。 全てのテーブルは使いませんが、これらのテーブルが存在している前提で進めます。

ALTER TABLE ステートメント

ALTER TABLE ステートメントを使うと、カラムや制約の追加・変更・削除、制約やトリガーなどの有効化・無効化、パティションの再アサインや再構築を行うことができます。

ここでは、ALTER TABLE ステートメントを使った、カラムの追加・変更・削除を行ってみましょう。


ALTER TABLE でテーブルにカラムを追加する

CREATE 文と同様に、オプションや指定できる項目がたくさんありますが、シンプルに ALTER TABLE を使って [テーブル1] に [カラム1] を追加するには、次のようなスクリプトを実行します。

ALTER TABLE [テーブル1]
ADD [カラム1] [データ型] [NULL or NOT NULL];

それでは、実際に ALTER TABLE 文を実行して、カラムを追加してみましょう。

このような Student テーブルがあります。

ALTER TABLE でテーブルのカラムを追加・変更・削除する 1


Student テーブルに電話番号を保存する PhoneNumber というカラムを追加するクエリーは次の通りです。

ALTER TABLE Student
ADD PhoneNumber VARCHAR(20) NULL;

[ 実行結果 ]
ALTER TABLE でテーブルのカラムを追加・変更・削除する 2

ALTER TABLE でテーブルのカラムを追加・変更・削除する 3

PhoneNumber カラムが追加されました。

ALTER TABLE & ALTER COLUMN でテーブルにカラムを変更する

ALTER TABLE と ALTER COLUMN を使って、[テーブル1] の [カラム1] のデータ型変更するには次のように書きます。

ALTER TABLE [テーブル1]
ALTER COLUMN [カラム1] [新しいデータ型];

先ほど追加した PhoneNumber カラムのデータタイプは VARCHAR(20) にしましたが、データタイプを NVARHCAR(50) に変更してみましょう。

ALTER TABLE Student
ALTER COLUMN PhoneNumber NVARCHAR(50);

[ 実行結果 ]
ALTER TABLE でテーブルのカラムを追加・変更・削除する 4

ALTER TABLE でテーブルのカラムを追加・変更・削除する 5

PhoneNumber カラムのデータ型が NVARHCAR(50) に変更されました。

変更前と変更後のデータ型によっては、既にデータが入っている場合、データが失われてしまう可能性がありますので気をつけてください。 カラムの長さを増やすような変更は大丈夫です。


ALTER TABLE & DROP COLUMN でテーブルのカラムを削除する

ALTER TABLE と DROP COLUMN を使って[テーブル1] の [カラム1] を削除するには、次のように書きます。

ALTER TABLE [テーブル1] 
DROP COLUMN [カラム1];

Student テーブルに先ほど追加した PhoneNumber カラムを削除してみましょう。

ALTER TABLE Student
DROP COLUMN PhoneNumber;

[ 実行結果 ]
ALTER TABLE でテーブルのカラムを追加・変更・削除する 6

ALTER TABLE でテーブルのカラムを追加・変更・削除する 7

Student テーブルから PhoneNumber カラムが削除されましたね。


ALTER TABLE にも、ルールやオプションがいろいろありますが、テーブルの変更はプログラムからクエリーで行うことはそんなに多くないと思いますので、ここでは詳細は取り上げません。


次は、DROP TABLE でテーブルを削除してみましょう。

© 2010-2024 SQL Server 入門