0

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

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

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

エラー

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

どうすればいいですか、アイデアをください

また、注意してください

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

ありがとうございました

4

3 に答える 3

1

[改訂 - もっと上手に読むことを学ぶ必要がある]

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

http://www.jetbrains.com/teamcity/

ケビン

于 2010-10-20T21:01:53.560 に答える
0

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

また、Sql management studio で復元 GUI を使用するときに、「既存の接続をすべて閉じる」オプションがいくつかあったことを思い出します。

于 2010-10-20T20:47:24.133 に答える
0

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

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

于 2010-10-20T20:47:30.007 に答える