Пытались и не смогли написать скрипт, который ежедневно восстанавливает файл резервной копии базы данных SQL.
Резервная копия файла имеет следующий формат Backup_28_04_2020. Мне нужен скрипт, чтобы взять последний файл и восстановить его в базе данных под названием [CallDatabase]. Это дата, которая меня отталкивает, потому что она меняется каждый день.
Любая помощь приветствуется.
БД SQL server 2016.
Сценарий, который я пытаюсь описать ниже , Сценарий анализируется, но завершается с ошибкой ниже.
"Ошибка преобразования типа данных varchar в nvarchar. [SQLSTATE 42000] (Ошибка 8114). Шаг не выполнен."
DECLARE @FileName varchar(255), @PathToBackup varchar(255), @RestoreFilePath varchar(1000)
DECLARE @Files TABLE (subdirectory varchar(255), depth int, [file] int)
SET NOCOUNT ON
SET @PathToBackup = 'H:\'
-- insert into our memory table using dir tree and a single file level
INSERT INTO @Files
EXEC master.dbo.xp_DirTree @PathToBackup,1,1
SELECT TOP 1
@FileName = [subdirectory]
FROM
@Files
WHERE
-- get where it is a file
[file] = 1
AND
subdirectory LIKE 'Backup_%.bak'
ORDER BY
-- order descending so newest file will be first by naming convention
subdirectory DESC
IF LEFT(REVERSE(@PathToBackup), 1) != '\'
BEGIN
SET @PathToBackup = @PathToBackup + '\'
END
SET @RestoreFilePath = @PathToBackup + @FileName
SELECT @RestoreFilePath
RESTORE DATABASE [CallDatabase]
FROM DISK = @RestoreFilePath
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10