2009-03-24 18 views
0

誰でも私にvb.netからデータベースを復元する方法を教えてもらえますか?SQL Server2005からテンプレートスクリプトを取得してストアドプロシージャを使って復元しようとしました。 "データベースは既に使用中です。データベースは既に使用中です。"というエラーがあります。vb.netを使ってデータベースを復元する

答えて

2

実際に復元しているデータベースに接続するのに使用するのと同じ接続文字列を使用したと仮定します。 エラーメッセージから、別のInitialCatalogパラメータ(「master」を使用する必要があることを示すエラーメッセージ)を使用してサーバーへの接続を作成する必要があります。

もう1つの方法は、スクリプトの先頭に "USE master"を貼り付けることです。 Hereは、USEステートメントの小さな説明です。

0

エラーから、実際のVB.netプログラムエラーがあるように見えません。
データベースの復元ストアドプロシージャに問題があるようです。

データベースを復元する前に、
を確認してください。•リストアしているデータベースを使用していない接続 - これは、そのエラーの原因の1つです。 "データベースはすでに使用中です。 "
•ターゲットデータベースへの他の接続を閉じる必要があります - すべての接続を閉じます。

Denis Trollerには"USE master"が記載されていて、スクリプトにリストアバッチスクリプトの最初の文があることを確認してください。

0

私のプロジェクトでこれを書いたので、自分の方法を分かち合うと思った。

私は、バックアップを呼び出すと、次のようにデータベースやファイル名のSqlParametersをSqlCommand.CommandTextを使用してサーバにSQLを発射し、設定することで、復元しています:

シンプルバックアップ:

BACKUP DATABASE @dbName 
    TO [email protected] 
    WITH FORMAT

次に使用して、それを復元:

USE master 
RESTORE DATABASE @dbName 
    FROM DISK = @fileName

BACKUPとRESTOREコマンドにはたくさんのオプションがありますが、私はちょうど高速のスレッジハンマーアプローチを望んでいました。これはうまく機能します。

「使用中」エラーを修正した「USEマスター」のヒントのデニスさんに感謝します。

関連する問題