Ошибка команды резервного копирования SQL Server - PullRequest
1 голос
/ 30 марта 2012

Я пытаюсь создать резервную копию своей базы данных SQL Server в Visual Studio 2010.

Я использую следующую команду для резервного копирования базы данных:

BACKUP DATABASE DbTO DISK = 'c: \ server.bak'

Это строка подключения, которую я использую.

<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Db.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

Однако, когда я запускаю команду, я получаю следующеесообщение об ошибке.

База данных 'Db' не существует.

Вот снимок экрана, который описывает мою ошибку:

http://www.cs.purdue.edu/homes/aerfanfa/sqlerror.jpg

У кого-нибудь есть решение длямоя проблема?Спасибо!

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Проблема в том, что ваша база данных db.mdf не подключена к экземпляру SQL Server Express, поэтому вы не можете создать ее резервную копию.

Вся эта история AttachDbFileName=..... немного хитрая, и, если вы спросите меня, она довольно беспорядочная.

Я бы порекомендовал просто забыть об использовании этого AttachDbFileName=... материала, и вместо этого:

  • просто прикрепите файл db.mdf к локальному экземпляру SQL Server Express (с помощью SQL Server Management Studio Express)

  • общаться с подключенной базой данных, используя логическое имя базы данных вместо того, чтобы возиться с .mdf файлом

Как только вы это сделаете - , тогда вы можете использовать такие команды, как BACKUP DATABASE ... и все остальное!

Ваша строка подключения тоже будет намного проще!

<add name="ConnectionString" 
     connectionString="Server=.\SQLEXPRESS;Database=YourDatabaseName;Integrated Security=True;"
     providerName="System.Data.SqlClient"/>
0 голосов
/ 30 марта 2012

Попробуйте щелкнуть правой кнопкой мыши базу данных в Manament studio, выбрать задачи, затем «Резервное копирование» После настройки параметров вы можете выбрать «Скрипт», который даст вам надлежащий резервный скрипт.

Сценарий резервного копирования выглядит примерно так:

BACKUP DATABASE [Db] TO  DISK = 
N'C:\Server.bak'
 WITH NOFORMAT, INIT,  NAME = N'Db Backup', SKIP, NOREWIND, NOUNLOAD, 
STATS = 10
GO
...