【SQLServer】既存のテーブルにカラムを追加・変更・削除(ALTER TABLE)

SQLServerで既存のテーブルに対してカラムを追加、変更、削除する方法をここにメモしておきます。

 

・カラムの追加

-- 構文
ALTER TABLE [テーブル名] ADD [カラム名] [データ型] [NULL or NOT NULL DEFAULT ××];
-- 例
ALTER TABLE user ADD NAME_KANA nvarchar(60) NOT NULL DEFAULT '';

上記のSQLによって、テーブルの一番右側にカラムが追加されます。

残念ながらALTER TABLE文ではカラム位置を指定して追加することができないようです。

注意点として、新規でカラムを追加する場合「NOT NULL」のみの設定ができません。解決法としては記事下の※1を参照ください。

 

・カラムの変更

-- 構文
ALTER TABLE [テーブル名] ALTER COLUMN [新しいカラム名] [新しいデータ型];
-- 例)カラム名変更
ALTER TABLE user ALTER COLUMN KANA;
-- 例)データ型変更
ALTER TABLE user ALTER COLUMN NAME_KANA nvarchar(100);

 

・カラムの削除

-- 構文
ALTER TABLE [テーブル名] DROP COLUMN [カラム名];
-- 例
ALTER TABLE user DROP COLUMN NAME_KANA;

 

※1.注意点

新規でカラムを追加するとき「NOT NULL」のみの設定はできず、NULLを許可するか、またはNOT NULLとデフォルト値の両方を設定することしかできません。

解決策としては、例えば文字列型のカラムの場合一旦「NOT NULL DEFAULT ''」をカラムを追加しておき、その後「NOT NULL」に変更する方法がベターです。

-- 一旦デフォルト値を設定してカラム追加
ALTER TABLE user ADD NAME_KANA nvarchar(6) NOT NULL DEFAULT '';
-- 全レコードのNAME_KANAを「hoge」に更新
-- ※ここはシステムの仕様によって適宜、適当な値を入れてください。
UPDATE user SET NAME_KANA ='hoge';
-- NOT NULLに変更
ALTER TABLE user ALTER COLUMN NAME_KANA nvarchar(6) NOT NULL;

 

以上です。



投稿日:2020-08-21    更新日:2020-08-21

[スポンサーリンク]

関連記事
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]