SQL Server で ALTER TABLE を使って列を追加する方法:初心者向けチュートリアル
SQL Server で ALTER TABLE を使用して列を追加する方法
SQL Server の ALTER TABLE
コマンドを使用すると、既存のテーブルに列を追加できます。この操作は、テーブルの構造を変更する必要がある場合に役立ちます。
構文
ALTER TABLE [テーブル名]
ADD [列名] [データ型] [制約条件] [DEFAULT 値];
説明
[テーブル名]
: 列を追加するテーブルの名前を指定します。[列名]
: 追加する列の名前を指定します。[データ型]
: 追加する列のデータ型を指定します。SQL Server でサポートされているすべてのデータ型を使用できます。[制約条件]
: 列に適用する制約条件を指定します。制約条件には、NOT NULL
、UNIQUE
、PRIMARY KEY
などがあります。[DEFAULT 値]
: 新しい列のデフォルト値を指定します。デフォルト値を指定しない場合は、列のデータ型に応じてデフォルト値が設定されます。
例
次の例では、Customers
テーブルに Email
列を追加します。
ALTER TABLE Customers
ADD Email varchar(50) NOT NULL DEFAULT '';
この例では、Email
という名前の列が Customers
テーブルに追加されます。この列は varchar(50)
データ型で、NOT NULL
制約と空文字列のデフォルト値が設定されています。
ALTER TABLE
コマンドを実行するには、テーブルに対する十分な権限を持っている必要があります。- 列を追加すると、既存のデータに影響を与える可能性があります。既存のデータとの整合性を保つために、注意が必要です。
- 列を追加する前に、データベースのバックアップを取ることをお勧めします。
T-SQL での ALTER TABLE ADD COLUMN
T-SQL は、Transact-SQL の略で、SQL Server で使用される拡張言語です。T-SQL では、ALTER TABLE
コマンドを使用して列を追加する際に、追加のオプションを使用できます。
次の例では、Customers
テーブルに Email
列を追加し、その列を PRIMARY KEY
として設定します。
ALTER TABLE Customers
ADD Email varchar(50) NOT NULL PRIMARY KEY;
-- Customers テーブルに Email 列を追加する
ALTER TABLE Customers
ADD Email varchar(50) NOT NULL DEFAULT '';
-- Customers テーブルに PhoneNumber と Address 列を追加する
ALTER TABLE Customers
ADD PhoneNumber varchar(20) NOT NULL,
Address varchar(255);
例 3: 列を追加し、その列を PRIMARY KEY にする
-- Products テーブルに ProductID 列を追加し、それを PRIMARY KEY にする
ALTER TABLE Products
ADD ProductID int NOT NULL PRIMARY KEY IDENTITY(1,1),
ProductName varchar(50) NOT NULL,
UnitPrice money NOT NULL,
CategoryID int NOT NULL,
SupplierID int NOT NULL;
例 4: 列を追加し、その列に DEFAULT 値を設定する
-- Orders テーブルに OrderDate 列を追加し、その列に DEFAULT 値を設定する
ALTER TABLE Orders
ADD OrderDate datetime NOT NULL DEFAULT GETDATE();
例 5: 列を追加し、その列に制約を追加する
-- Employees テーブルに Salary 列を追加し、その列に CHECK 制約を追加する
ALTER TABLE Employees
ADD Salary decimal(10,2) NOT NULL,
CHECK (Salary >= 0);
これらの例は、ALTER TABLE
コマンドを使用して列を追加する方法をいくつか示しています。ニーズに合わせて構文を調整することができます。
- 上記の例では、
varchar
、int
、datetime
、money
などのデータ型を使用しています。SQL Server でサポートされているすべてのデータ型を使用できます。 - 列に制約を追加するには、
CONSTRAINT
キーワードを使用します。 - DEFAULT 値を設定するには、
DEFAULT
キーワードを使用します。
SSMS は、SQL Server を管理および使用するグラフィカル ツールです。SSMS を使用して列を追加するには、次の手順を実行します。
- SSMS で、列を追加するテーブルをナビゲートします。
- テーブルを右クリックし、[デザイン] を選択します。
- [テーブル デザイナー] ウィンドウが開きます。
- 列を追加する場所にカーソルを移動します。
- [保存] をクリックします。
データベース デザイナーを使用する
データベース デザイナーは、SQL Server に含まれる視覚的なツールで、データベースの構造を設計および変更することができます。データベース デザイナーを使用して列を追加するには、次の手順を実行します。
- データベース デザイナーを開き、列を追加するテーブルをナビゲートします。
- [列のプロパティ] ウィンドウが開きます。
bcp コマンドライン ユーティリティを使用する
bcp
コマンドライン ユーティリティを使用して、SQL Server テーブルにデータをインポートおよびエクスポートすることができます。bcp
を使用して列を追加するには、次のコマンドを使用します。
bcp [テーブル名] INSERT datafile=[データ ファイル] format=native NEWCOLUMN colname=列名,datatype=データ型
bcp Customers INSERT datafile=C:\Customers.dat format=native NEWCOLUMN Email=varchar(50),NOT NULL
このコマンドは、C:\Customers.dat
ファイルにあるデータを Customers
テーブルにインポートし、Email
という名前の新しい列を追加します。Email
列は varchar(50)
データ型で、NOT NULL
制約が設定されています。
sql sql-server t-sql