Резервное копирование Sql Express - PullRequest
1 голос
/ 03 сентября 2010

Я хотел бы иметь возможность запускать резервное копирование базы данных SQL Express 2008 приложения .Net MVC, например, на флешку, подключенную к машине, на которой выполняется приложение.

Я пытался

QuickstemDataContext db = new QuickstemDataContext();
 string quickstem_path = Path.Combine(save_path, "quickstem.backup");
 db.ExecuteCommand(string.Format("BACKUP DATABASE {1} TO DISK = '{0}' WITH COMPRESSION;", quickstem_path, db.Mapping.DatabaseName));

Но получите исключение

База данных 'quickstem' не существует. Убедитесь, что имя введено правильно. РЕЗЕРВНАЯ БАЗА ДАННЫХ завершается ненормально

Я использую следующую строку подключения.

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\quickstem.mdf;Integrated Security=True;User Instance=True"

Нужно ли присоединять БД с помощью чего-то вроде Express Management Studio и давать ему имя и т. Д. В идеале я хочу, чтобы приложение было развернуто очень просто, без необходимости настройки sql management Studio и т. Д. Может ли это присоединение быть выполнено другим способом или Можно ли сделать резервную копию, не подключая

Я попытался указать полный путь к файлу .mdf вместо имени базы данных, но получил синтаксическую ошибку на c:

1 Ответ

1 голос
/ 03 сентября 2010

Вы обнаружите, что если вы добавите Database=Quickstem в строку подключения, ваш резервный код будет работать нормально.

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\quickstem.mdf;Integrated Security=True;User Instance=True;Database=Quickstem
...