Предоставленный сценарий имеет условие IF, которое проверяет системную функцию DB_ID, чтобы увидеть, существует ли какая-либо база данных на SQL Server с тем же именем.Если проверка имеет значение true, то процесс восстановления пропускается. Для запуска этого сценария не должно быть базы данных с тем же именем на SQL Server.
Или можно изменить сценарий, включив в него параметр REPLACE длявосстановление баз данных.См. MSDN Link: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-2017#REPLACEoption
Теперь ваш скрипт должен выглядеть следующим образом:
IF DB_ID('Northwind') IS NULL
BEGIN //This runs if no database of the name "Northwind" exist
RESTORE DATABASE [Northwind]
FILE = N'Northwind_Data'
FROM DISK = N'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SS2008\MSSQL\Backup\Northwind.bak'
WITH
FILE = 1, NOUNLOAD, STATS = 10,
MOVE N'YOUR logical name of data file as shown by RESTORE FILELISTONLY command'
TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind.mdf',
MOVE N'YOUR logical name of Log file as shown by RESTORE FILELISTONLY command'
TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind_0.LDF'
END
ELSE
BEGIN //This runs if there is a database with same name by replaceing it.
RESTORE DATABASE [Northwind]
FILE = N'Northwind_Data'
FROM DISK = N'C:\Program Files\Microsoft SQLServer\MSSQL10_50.SS2008\MSSQL\Backup\Northwind.bak'
WITH
FILE = 1, NOUNLOAD, REPLACE, STATS = 10,
MOVE N'YOUR logical name of data file as shown by RESTORE FILELISTONLY command'
TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind.mdf',
MOVE N'YOUR logical name of Log file as shown by RESTORE FILELISTONLY command'
TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SS2008\MSSQL\DATA\Northwind_0.LDF'
END
Существуют отличные сторонние инструменты, которые могут выполнять эти резервные копии, восстанавливать и даже исправлять поврежденные файлы базы данных с помощьюлегко помочь вам в вашей работе.Ознакомьтесь с Stellar Database Toolkit .
ПРИМЕЧАНИЕ. У переполнения стека есть форум администратора базы данных https://dba.stackexchange.com/ отдельно от этого, который предназначен для вопросов базы данных, подобных этому.Опубликуйте вопросы, связанные с базой данных, для более быстрых и точных ответов.
Спасибо и HTH.