テーブルに列を追加する (SQLでのカラムの追加)

目次

チップ・ハムリン
質問: テーブルの列追加
テーブルに列を追加したいです。レコードがすでに大量に挿入されているので、SQL文で列追加する方法を知りたいです。
SQLでテーブルに列(カラム/column)を追加するコードの紹介です。

概要

SQLを利用してテーブルに列を追加できます。テーブルに列を追加する場合は ALTER TABLE コマンドを利用し ADD 文を記述します。

書式

ALTER TABLE (テーブル名) ADD (列名) (型名) (初期値)

NOT NULLの列を作成する場合は以下の書式を利用します。
ALTER TABLE (テーブル名) ADD (列名) (型名) NOT NULL DEFAULT=(初期値)

メモ
列はテーブルの末尾に追加されます。
MySQLではAFTER句を使用すると指定した列の後ろに列を追加できますが、SQL Serverにはありません。

例1

次の例はProductsテーブルにfloat型のPrice列を追加します。初期値はnullとします。
ALTER TABLE Products ADD Price float NULL;

例2

次の例はDocumentテーブルにnchar(64)型のLanguage列を追加します。初期値はnullとします。
ALTER TABLE Document ADD Language nchar(64) NULL;

例3

次の例はFiguree テーブルにint型のWidth列を追加します。NULL を許容しない列とし、初期値は0とします。
ALTER TABLE Figuree ADD Width int NOT NULL DEFAULT 0

実行例

次のテーブルを作成します。
ProductItem テーブル
列名データ型
id int
name nchar(128)
category nchar(64)
code nchar(16)
subcode nchar(8)
memo ntext

このテーブルから decimal型のprice列を追加します。初期値はNULLとします。
次のSQL文を実行します。
ALTER TABLE ProductItem ADD price decimal(18,2) NULL;

実行後のテーブルは以下の構造になります。
ProductItem テーブル
列名データ型
id int
name nchar(128)
category nchar(64)
code nchar(16)
subcode nchar(8)
memo ntext
price decimal(18, 2)
AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2011-10-16
Copyright © 1995–2025 iPentec all rights reserverd.