使用文件名可变日期脚本还原数据库

时间:2019-06-19 14:09:42

标签: tsql

我想编写一个脚本,该脚本将按数据库名称+今天的日期来还原数据库。示例:(test_01.05.2018.bak)

DECLARE @BackupFile as nvarchar(128);
SET @BackupFile = N'C:\backup\test1' + convert(varchar(12),Day(GETDATE()) -1) + (month(GETDATE()) * 100) + (year(GETDATE()) * 10000) + N'test1.bak'
USE master;
RESTORE DATABASE [TEST] FROM DISK = @BackupFile WITH FILE = 1,
MOVE N'test1' TO N'C:\db\TEST.mdf',  
MOVE N'test1_log' TO N'C:\db\TEST_log.ldf',
NOUNLOAD, REPLACE, STATS = 10

1 个答案:

答案 0 :(得分:0)

您的查询中的日期应为YYYYMMDD和昨天的日期。由于收敛而出错。

它可以用

之类的东西重写
DECLARE @BackupFile as nvarchar(128);
SET @BackupFile = N'C:\backup\test1' + CONVERT(NVARCHAR(8), DATEADD(DAY, -1, GETDATE()), 112) + N'test1.bak'

您仍然需要编辑字符串的其他部分,因为我听不懂它,但这将使您到位。