方法 : データベース オブジェクトの名前を変更する
このトピックでは、Visual Studio Team System Database Edition でデータベース オブジェクトの名前を変更する方法について説明します。 データベース オブジェクトの名前を変更すると、そのオブジェクトを参照する他のオブジェクトが、新しい名前に合わせて自動的に更新されます。たとえば、テーブルの列名を変更した場合、その列を参照するストアド プロシージャが、新しい名前に合わせて自動的に更新されます。 詳細については、「データベース オブジェクトへのすべての参照の名前を変更する」を参照してください。
データベース オブジェクトの名前を変更するには
スキーマ ビューで、名前を変更するオブジェクトをクリックします。 たとえば、列の名前を変更するには、[テーブル] サブフォルダを展開し、テーブルを展開します。次に、[列] フォルダを展開し、名前を変更するオブジェクトをクリックします。
メモ : Database Edition で、[スキーマ ビュー] ウィンドウを使用してデータベース オブジェクトをリファクタします。 コード ウィンドウからはデータベース オブジェクトをリファクタできません。
[データ] メニューの [リファクタ] をポイントし、[名前の変更] をクリックします。 スキーマ ビューでオブジェクトを右クリックし、[リファクタ] をポイントして、[名前の変更] をクリックする方法もあります。
[名前の変更] ダイアログ ボックスが表示されます。
メモ : 名前を変更するデータベース オブジェクトにビルド エラーがあると、そのオブジェクトの名前を変更できません。 その場合、メニュー オプションは使用できません。
[新しい名前] ボックスに、オブジェクトの新しい名前を入力します。
(省略可能) [変更のプレビュー] チェック ボックスをオンにします。
メモ : 変更する前に変更内容をプレビューする方法の詳細については、次の手順を参照してください。 既定では、単体テストとスクリプト内の参照は、自動的には更新されません。 [変更のプレビュー] ダイアログ ボックスで、これらの変更を適用する必要があります。
(省略可能) [非修飾スクリプトおよび単体テストの参照に既定のプロジェクト スキーマ dbo を使用] チェック ボックスをオンにします。
このチェック ボックスをオフに設定し、スクリプトと単体テストに完全修飾名を指定していない場合、これらの参照は見つかりません。 このチェック ボックスをオンに設定し、スクリプトと単体テストに完全修飾名を指定していない場合、これらのオブジェクトの既定のスキーマは、プロジェクトの既定のスキーマと同じであると見なされます。
(省略可能) [警告またはエラーを含むスキーマ オブジェクトの参照を更新する] チェック ボックスをオンにします。
このチェック ボックスがオフの場合、オブジェクトの定義に警告またはエラーが存在したときに、そのオブジェクト内の参照はリファクタリング操作の対象から除外されます。 このチェック ボックスがオンの場合、オブジェクト定義に警告またはエラーが存在していても、そこに含まれるすべての参照が更新されます。
(省略可能) [リファクタリング ログの生成] チェック ボックスをオンにします。
リファクタリングのログは、<YOUR PROJECT PATH>\Refactoring Logs に格納されます。 これらのログは、データベース プロジェクトを配置する際にリファクタリング操作の意図を保持するための ProjectName.refactorlog ファイルからは独立しています。
メモ : プロジェクト内にビルド エラーがあるときにデータベース オブジェクトの名前を変更すると、その名前自体は正しく変更できます。 ただし、そのオブジェクトへの参照の一部が正しく更新されない場合があります。 プロジェクトにビルド エラーがある場合、オブジェクトの名前が変更され、可能な限り多くの参照が更新されます。 ビルド エラーを修正してから名前の変更操作を実行することもできます。 詳細については、「データベース オブジェクト名の変更に関する考慮事項」を参照してください。
[OK] をクリックします。
[変更のプレビュー] チェック ボックスがオンになっている場合、[変更のプレビュー] ダイアログ ボックスが表示されます。 オフになっている場合は、変更が実行されます。 オブジェクト名が更新され、スキーマ ビューに新しい名前が表示されます。
メモ : 変更は元に戻すことができます。 詳細については、「方法 : データベース リファクタリング操作を元に戻す」を参照してください。
手順 6. で説明したオプションのログ ファイルに加え、データベース オブジェクトを別のスキーマに移動すると常に、ProjectName.refactorlog ファイルにエントリが書き込まれます。 このファイルはデータベース プロジェクトの一部であり、データベース プロジェクトの配置時に使用されます。 このファイルは、バージョン管理にチェックインし、他の共有プロジェクト資産と同じように管理する必要があります。 詳細については、「別のスキーマにデータベース オブジェクトを移動する」を参照してください。
変更を実行する前に変更内容をプレビューするには
[名前の変更] ダイアログ ボックスに、オブジェクトの新しい名前を入力します。
[変更のプレビュー] チェック ボックスをオンにして、[OK] をクリックします。
表示される [変更のプレビュー] ダイアログ ボックスには、上部と下部の 2 つのペインがあります。 上部のペインには、変更されるオブジェクトを一覧表示するツリーが表示され、下部のペインには、変更を行うために生成されるスクリプトが表示されます。 古い名前は上部のペインに表示され、新しい名前は下部のペインに表示されます。
上部のペインで、[スキーマ オブジェクト] を展開します。
名前を変更するスキーマ オブジェクト (またはそのオブジェクトが含まれているオブジェクト) の .sql ノードが、名前が変更されたオブジェクトを参照しているスキーマ オブジェクトの .sql ノードと共に表示されます。
いずれかの .sql ノードをクリックします。
下部のペインに T-SQL コードが表示され、新しい名前が強調表示されます。
[適用] をクリックします。
変更が実行されます。 オブジェクト名が更新され、スキーマ ビューに新しい名前が表示されます。
メモ : 変更は元に戻すことができます。 詳細については、「方法 : データベース リファクタリング操作を元に戻す」を参照してください。
参照
処理手順
チュートリアル : データベース リファクタリング機能の適用