エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

【SQL Server】テーブルの列名を変更するsp_renameを解説します

こんにちは。たいら(@tairaengineer2)です。
この記事では、テーブルの列名を変更するsp_renameについて解説します。

スポンサーリンク

 

前提条件

この記事では、Microsoft SQL Server2017を使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

sp_renameとは

sp_renameはテーブル名や列名など、テーブルに関するものを変更するときに使います。

sp_rename (TRANSACT-SQL)
適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data Warehouse
現在のデータベース内のユーザーが作成したオブジェクトの名前を変更します。
このオブジェクトは、テーブル、インデックス、列、別名データ型、またはMicrosoft.NET Framework共通言語ランタイム (CLR) ユーザー定義の型。

sp_rename (TRANSACT-SQL) - SQL Server | Microsoft Docsから引用させて頂きました

この記事では、sp_renameで列名を変更するやり方にしぼって解説します。
使い方は、以下のように使います。

f:id:Tairax:20190817140035p:plain

実際に使って解説します。

sp_renameを使って列名を変更する

解説で使うテーブルはこちらです。

f:id:Tairax:20190817140624p:plain

【Test】データベースの中にある【Person】テーブルです。
構造は以下のようになっています。

f:id:Tairax:20190817141010p:plain

この解説では、【job】という列を【job_change】という名前に変更します。
変更するためのSQL文は以下です。

EXEC sp_rename 'Person.job', 'job_change', 'COLUMN';

実行してみます。

f:id:Tairax:20190817142253p:plain

実行が成功すると

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

というメッセージが表示されますが、問題ありません。
理由は、このメッセージは、変わったから気を付けてねという警告メッセージだからです。
ちなみに、このメッセージを表示しないようにする方法はありません(;^ω^)

では、列名が本当に変わっているか確認します。
最新の情報に更新して、【Person】テーブルを確認します。

f:id:Tairax:20190817143237p:plain

【job】という列名が【job_change】という列名に変わっていますね!

まとめ:sp_renameを使ってテーブルの列名を変更してみよう

以上がsp_renameを使ってテーブルの列名を変更するやり方です。
まとめなので、もう1度振り返ってみます。

f:id:Tairax:20190817140035p:plain

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

他にもSQL Serverについて記事を書いています。
良ければこちらもご参考ください。

【SQL Server】データベースのバックアップファイルを復元する方法を解説します

【SQL Server】大文字から小文字に変換するLOWER関数について解説します

【SQL Server】SELECTで出した結果をcsvに出力する方法を解説します