0


0

多くのサーバーインスタンスで同じデータベースを作成する必要がある

SQL Server 2008、Visual Studio 08およびC#

タスクは、複数のサーバーに同じデータベースを作成することです。 テーブルが2つまたは3つしかない場合、手動で行ったはずですが、データベースには50を超えるテーブルがあります。

だから、バックアップを作成して、必要な場所にバックアップファイルを復元しない理由を考えました

エラー

ファイルは使用中です! (バックアップは使用されていませんが、エラーは実際のデータベースが使用中であると言っています! はい、他のサーバーにバックアップを復元するたびにサーバーを閉じることはできません!)

だから私は何をすべきか、あなたのアイデアを教えてください

また、注意してください

あなたが言うことは何でもSMOオブジェクトを使用して達成可能であるべきです

ありがとうございました

3 Answer


1


{空} [改訂-読みやすくする必要があります]

SMOオブジェクトについては確信がありませんが、SMOが他のSQL Server機能と同様に機能することを考えると、プロジェクトで行うことは、サーバーに自動的に展開するデータベースプロジェクトを使用することです。 これにはおそらくDatabase Edition(VS 2008)以降が必要です…​ 2010年にはプレミアム。 それがあれば、DBプロジェクトを作成するのは間違いなく素晴らしいオプションです。 次に、展開中にスキーマ比較を実行するようにセットアップします(必要な場合はデータ比較も実行できるかもしれません…​?)。 自動展開は最初はセットアップが困難ですが、セットアップが完了したら、シングルクリック展開を使用するのは良いことです…​今はTFSを使用して展開していますが、TeamCityについて良いことを聞いています:

ケビン


0


復元を実行する前に、ストアドプロシージャ 'sp_who2’を実行すると、データベースへの現在の接続が一覧表示されます。 とにかくDBを上書きする場合は、これらの接続のそれぞれに対して、「kill」を発行して接続を強制的に閉じることができます。

また、SQL管理スタジオで復元GUIを使用するときに、「既存の接続をすべて閉じる」オプションがあることを思い出します。


0


usp_killDBConnections @DBName = '' DbName ''を使用します

復元操作を実行する前に。 このコマンドは、復元前にすべてのDB接続を強制終了します。これは復元中に重要です。