接続されているデータベースを Power Buffer で更新する方法
SQL Server Data Tools Power Buffer テクノロジを使用すると、現在のセッションでの編集内容をすべて保存することにより、接続されているデータベースに変更を容易に適用できます。Transact-SQL エディターまたはテーブル デザイナーの Power Buffer ウィンドウでの編集によってエラーが生じた場合は、直ちに [エラー一覧] ペインに表示されるため、特定されたエラーを追跡してトラブルシューティングを進めることができます。保留中の変更は、データベースに適用する準備ができるまでの間に、確認することができます。更新プロセスでは、編集内容に基づいて自動的に ALTER スクリプトが作成され、問題が生じる可能性があれば警告が表示されます。開いているすべての Power Buffer ウィンドウで累積されたすべての変更を同じデータベースに適用することも、後で使用できるように ALTER スクリプトを保存することもできます。
SSDT では、Visual Studio の外でデータベース スキーマに加えられた変更も認識されます。たとえば、SQL Server Management Studio で既存のデータベースに新しいテーブルを追加した場合、このような変更は手動で更新しなくても Visual Studio の SQL Server オブジェクト エクスプローラーに直ちに反映されます。つまり、誤差検出機能により、SQL Server オブジェクト エクスプローラーには、常にデータベースの最新のスキーマ定義が表示されることになります。テーブル デザイナーまたは Transact-SQL エディターで編集のために開いたデータベース オブジェクトについては、Visual Studio の外で行われた変更を表示するために更新されることはありません。
以下に示す手順では、「接続されているデータベース開発」に示されているこれまでの手順で作成したエンティティを使用します。
これまでの手順で行った変更を適用するには
ツール バーにある緑の [更新] ボタンをクリックします (ボタンにマウス ポインターを合わせると、"データベースの更新" のツールヒントが表示されます)。ツール バーは、テーブル デザイナーの列グリッドの上にあります。
[データベース更新のプレビュー] ダイアログ ボックスが表示されます。変更に基づいた配置スクリプトがバックグラウンドで生成されます。SSDT によって行われるアクション (データベース エンティティの作成や削除など) の概要が、特定された潜在的な問題 (この機能は、この手順では不要ですが、解決されるまで更新操作を妨害するエラーがデータベース定義に含まれている場合に便利です) と共に、ダイアログ ボックスに表示されます。
この時点でデータベースを更新しない場合は、[キャンセル] をクリックして [データベース更新のプレビュー] ダイアログ ボックスを閉じます。
この時点までの変更を適用してデータベースを更新する場合は、[データベース更新のプレビュー] ダイアログ ボックスの [データベースの更新] をクリックします。配置スクリプトが実行され、累積されていた変更がデータベースに適用されます。
配置スクリプトを表示して確認する場合や更新する前に追加の変更を行う場合は、[データベース更新のプレビュー] ダイアログ ボックスの [スクリプトの生成] をクリックします。新しい Transact-SQL エディター ウィンドウが開き、生成されたスクリプトが表示されます。 エディターのツール バーにある Transact-SQL[クエリの実行] ボタンをクリックして、このクエリを実行します。これは、手順 4. で [データベースの更新] によって実行された操作に似ています。
警告
配置スクリプトに変更を加えて実行した場合、その変更は、開いているデータベース エンティティでは表示されません。たとえば、配置スクリプトで Customers テーブルの列の名前を変更し、データベースを更新するためにこのスクリプトを実行した場合に、テーブル デザイナーで Customers テーブルが開いていると、[データベースの更新] をクリックしても、列の名前は古い名前のままになります。テーブル デザイナーをローカルでスクリプトとして保存せずに、手動で閉じる必要があります。SQL Server オブジェクト エクスプローラーからこのテーブルを再度開くと、実際にはこのデータベースが更新されており、配置スクリプトで行った変更が反映されていることがわかります。
エディターのTransact-SQL出力ペイン (配置スクリプトを自分で実行した場合はメッセージ ペイン) に、更新に成功したことを示す以下のメッセージが表示されます。
[dbo].[Customers] を作成しています... [dbo].[Products] を作成しています...[dbo].[Suppliers] を作成しています... FK_Products_SupplierId を作成しています... FK_Products_CustomerId を作成しています... CK_Products_ShelfLife を作成しています... データベースの更新のトランザクション部分が成功しました。新しく作成された制約に対して既存のデータをチェックしています。更新が完了しました。
SQL Server オブジェクト エクスプローラーで、Trade データベースの [テーブル] ノードの下に、新しいテーブルが表示されています。
Visual Studio の外でデータベースに加えられた変更を表示するには
SQL Server Management Studio を開きます。[サーバーへの接続] ダイアログ ボックスで、Visual Studio で接続したものと同じデータベース サーバーを指定し、[接続] をクリックします。
SQL Server オブジェクト エクスプローラーで、[データベース] を展開し、Trade データベースに移動します。
Trade の下の [テーブル] を右クリックし、[新しいテーブル] をクリックします。テーブル デザイナーで、[列名] に id、[データ型] に int を入力します。
ツール バーの [保存] アイコンをクリックして、テーブルを保存します。既定の名前をそのままにして、[OK] をクリックします。
Visual Studio に戻ります。で、Trade データベースの下の SQL Server オブジェクト エクスプローラー[テーブル] ノードを調べます。新しく作成された Table_1 テーブルが表示されています。
[Table_1] を右クリックし、[削除] をクリックします。[データベース更新のプレビュー] ダイアログ ボックスの [データベースの更新] をクリックします。