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