適用対象: SQL Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric での SQL データベース
SQL Server では、 SQL Server Management Studio または Transact-SQL を使用してテーブル列の名前を変更することができます。
制限事項
列名を変更しても、その列に対する参照の名前は自動的に変更されません。 名前を変更した列を参照しているオブジェクトに対しては、手動で変更を加える必要があります。 たとえば、テーブルの列の名前を変更するとき、その列がトリガーで参照されている場合は、新しい列名が反映されるようにトリガーに変更を加える必要があります。 オブジェクトの名前を変更する前には、 sys.sql_expression_dependencies を使ってオブジェクトの従属関係を一覧表示できます。
列名を変更しても、そのテーブルですべての列 (SELECT
を使用する) を *
するオブジェクトのメタデータは自動的に更新されません。 たとえば、テーブルの列名を変更し、すべての列 (*
を使用する) を選択する非スキーマ バインド ビューまたは関数によってその列を参照する場合、ビューまたは関数のメタデータは元の列名を引き続き反映します。 メタデータを更新するには、sp_refreshsqlmodule または sp_refreshview を使います。
アクセス許可
オブジェクトに ALTER
のアクセス許可が必要です。
SQL Server Management Studio を使用します。
オブジェクト エクスプローラーを使用して列名を変更する
- オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
- オブジェクト エクスプローラーで、列の名前を変更するテーブルを右クリックし、 [名前の変更]をクリックします。
- 新しい列の名前を入力します。
テーブル デザイナーを使って列名を変更する
- オブジェクト エクスプローラーで、列の名前を変更するテーブルを右クリックし、 [デザイン]をクリックします。
- [列名]の下の変更する名前を選択して、新しい名前を入力します。
- [ファイル] メニューで、[<テーブル名> を保存] を選択します。
[列のプロパティ] タブで列の名前を変更することもできます。名前を変更する列を選択し、[名前] に新しい名前を入力します。
Transact-SQL の使用
列の名前変更
次の例では、テーブル ErrorTime
の dbo.ErrorLog
列名を ErrorDateTime
データベースの AdventureWorksLT
に変更します。
EXEC sp_rename 'dbo.ErrorLog.ErrorTime', 'ErrorDateTime', 'COLUMN';
出力の警告に注目し、他のオブジェクトまたはクエリが破損していないことを確認します。
Caution: Changing any part of an object name could break scripts and stored procedures.
詳細については、「sp_rename」を参照してください。