Восстановите базу данных SQL Server на удаленном сервере, используя C # - PullRequest
0 голосов
/ 03 мая 2019

Мне нужно написать программу на C #, которая восстанавливает базу данных SQL Server на удаленном компьютере, и мне нужно сделать это с локального компьютера. Мой код восстанавливает базу данных, но мне нужно указать путь к резервной копии файла .bak на удаленном компьютере, используя «С диска».

string sql =  "ALTER DATABASE [" + MyDatabaseName + "] ; Restore Database [" + MyDatabaseName + "] From Disk= '" + pathToBackupAtRemoteComputer +   "'WITH REPLACE;"
  1. Когда я удаляю базу данных с помощью SQL Server Management Studio и запускаю код, я получаю сообщение об ошибке, что база данных не существует или у меня нет разрешения. Я хочу 1: удалить базу данных, 2: создать новую базу данных, 3: поместить данные из файла резервной копии. Есть ли возможность написать что-то вроде: "DROP SCHEMA IF NOT EXITS" или "CREATE DATABASE IF NOT EXIST" (как в MySQL)? Я пытался, но это не сработало.

  2. Можно ли использовать файл .bak на моем локальном компьютере (как в MySQL, когда я передаю файл .sql на локальном компьютере в строку, а затем удаленно восстанавливаю базу данных)? Или, может быть, отправить файл .bak с локального на удаленный компьютер с помощью приложения C # и сделать это автоматически? Я попробовал это с помощью PsExec, но нет возможности передавать файл между двумя компьютерами.

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

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

USE master;
ALTER DATABASE [MyDatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [MyDatabaseName] ;

Таким образом, он удалит базу данных и физические файлы .ldf и .mdf файлы.Другое дело, что вы также можете переименовать базу данных (и, возможно, сравнить базу данных с восстановленной)

Хорошая статья о переименовании базы логических и физических файлов находится здесь:

https://www.mssqltips.com/sqlservertip/1891/steps-to-rename-a-sql-server-database/

0 голосов
/ 03 мая 2019

DROP DATABASE IF EXISTS возможно в SQL Server в SQL Server 2016 года.

Поскольку восстановление выполняется ядром базы данных SQL Server, файл резервной копии должен быть доступен удаленному SQL Server и может иметь путь UNC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...