【sp_rename】テーブル名とカラム名を変更する

システムストアドプロシージャ「sp_rename」を使用することで、
 ・テーブル名の変更
 ・カラム名の変更
等をすることが出来ます!
※上記以外の変更もできます。制約等。

システムストアドプロシージャ「sp_rename」とは

SQL Serverが提供しているストアドプロシージャです。

以下を変更する場合は、このストアドプロシージャの使用は控えたほうが良いそうです。
・ストアド プロシージャ名
・トリガー名
・ユーザー定義関数名
・ビュー名

テーブル名を変更する

テーブル名を変更する場合の構文は以下となります。

ここでは例として、
 ・「sales」テーブルの名前を
 ・「sales_new」へ
変更するSQLを実行します。
また変更前後で対象のテーブル名を確認するSQLを実行します。

--変更前 確認
SELECT name FROM sys.tables
WHERE name in ('sales','sales_new')

--テーブル名を変更
exec sp_rename sales, sales_new

--変更後 確認
SELECT name FROM sys.tables
WHERE name in ('sales','sales_new')

カラム名を変更する

カラム名を変更する場合の構文は以下となります。

カラム名を変更する場合は「'(シングルコーテーション)」で囲みます。
➡「.(ドット)」で繋ぐときは必ず囲む必要があります。

ここでは例として、「sales_new」テーブルの
 ・「price」カラムを
 ・「price_en」カラムへ
変更するSQLを実行します。
また変更前後で対象のカラム名を確認するSQLを実行します。

--変更前 確認
SELECT TOP(1) * FROM sales_new

--カラム名を変更
exec sp_rename 'sales_new.price', 'price_en'

--変更後 確認
SELECT TOP(1) * FROM sales_new

備考

sp_renameを実行すると以下のメッセージが出力されますが、気にしなくて大丈夫です。

注意: オブジェクト名の任意の部分を変更すると、スクリプトやストアド プロシージャが中断する可能性があります。
タイトルとURLをコピーしました