列名の変更 (データベース エンジン)

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed Instance

SQL Server では、 SQL Server Management Studio または Transact-SQL を使用してテーブル列の名前を変更することができます。

制限事項と制約事項

列名を変更しても、その列に対する参照の名前は自動的に変更されません。 名前を変更した列を参照しているオブジェクトに対しては、手動で変更を加える必要があります。 たとえば、テーブルの列の名前を変更するとき、その列がトリガーで参照されている場合は、新しい列名が反映されるようにトリガーに変更を加える必要があります。 オブジェクトの名前を変更する前には、 sys.sql_expression_dependencies を使ってオブジェクトの従属関係を一覧表示できます。

列の名前を変更しても、(* を使って) そのテーブルからすべての列を SELECT するオブジェクトのメタデータは自動的には更新されません。 たとえば、テーブル列の名前を変更し、(*を使って) すべての列を SELECT する非スキーマ バインド ビューまたは関数からその列を参照する場合、ビューまたは関数のメタデータには、元の列名が引き続き反映されます。 メタデータを更新するには、sp_refreshsqlmodule または sp_refreshview を使います。

アクセス許可

オブジェクトに対する ALTER 権限が必要です。

SQL Server Management Studio を使用します

オブジェクト エクスプローラーを使用して列名を変更する

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
  2. オブジェクト エクスプローラーで、列の名前を変更するテーブルを右クリックし、 [名前の変更]をクリックします。
  3. 新しい列の名前を入力します。

テーブル デザイナーを使って列名を変更する

  1. オブジェクト エクスプローラーで、列の名前を変更するテーブルを右クリックし、 [デザイン]をクリックします。
  2. [列名]の下の変更する名前を選択して、新しい名前を入力します。
  3. [ファイル] メニューで、[<テーブル名> を保存] を選択します。

[列のプロパティ] タブで列の名前を変更することもできます。名前を変更する列を選択し、[名前] に新しい名前を入力します。

Transact-SQL の使用

列の名前変更

次の例では、テーブル dbo.ErrorLogErrorTime 列名を AdventureWorksLT データベースの ErrorDateTime に変更します。

EXEC sp_rename 'dbo.ErrorLog.ErrorTime', 'ErrorDateTime', 'COLUMN';

出力の警告を確認し、他のオブジェクトまたはクエリが壊れていないことを確認します。

Caution: Changing any part of an object name could break scripts and stored procedures.

詳細については、「sp_rename (Transact-SQL)」を参照してください。

次のステップ