2009-03-24 2 views
0

Может ли кто-нибудь помочь мне восстановить базу данных из vb.net, я попытался восстановить использование хранимой процедуры, взяв скрипт шаблона рестарта из sql server2005. но есть ошибка «база данных уже используется, пожалуйста, используйте основную базу данных ..»Восстановление базы данных с помощью vb.net

ответ

2

Я предполагаю, что вы использовали ту же строку соединения, которую обычно используете для подключения к базе данных, которую вы фактически восстанавливаете. Из вашего сообщения об ошибке я бы сказал, что вы должны создать свое соединение с сервером с другим параметром InitialCatalog (сообщение об ошибке указывает, что вы должны использовать «master»).

Другой вариант заключается в том, чтобы в начале скрипта вставить «USE master». Here - небольшое описание инструкции USE.

0

Из-за ошибки это не похоже на фактическую программную ошибку VB.net.
Похоже, проблема кроется в хранимой процедуре восстановления базы данных.

Перед восстановлением базы данных, убедитесь, что
• Ваше подключение не использует базу данных, вы восстанавливающий - Это одна из возможных причин этой ошибки, «база данных уже используется, пожалуйста, используйте основную базу данных .. «
• Другие подключения к целевой базе данных должны быть закрыты - закрыть все соединения с ним.

Denis Troller упомянул "USE master" и убедитесь, что ваш скрипт имеет это утверждение как очень «первое» утверждение в вашем пакетном скрипте восстановления.

0

Я только что написал это в своем проекте, поэтому я решил поделиться своим методом.

Я звоню резервное копирование и восстановления обжига SQL на сервере с помощью SqlCommand.CommandText и установки SqlParameters для базы данных и имени файла следующим образом:

Простого резервное копирование:

BACKUP DATABASE @dbName 
    TO [email protected] 
    WITH FORMAT

Затем восстановить его с помощью:

USE master 
RESTORE DATABASE @dbName 
    FROM DISK = @fileName

re - множество опций в командах BACKUP и RESTORE, но мне просто нужен быстрый подход к санному молоту, и это хорошо работает.

Спасибо Denis за отзыв «USE master», который только что зафиксировал мою ошибку «в использовании»!

Смежные вопросы