我想编写一个脚本,该脚本将按数据库名称+今天的日期来还原数据库。示例:(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
答案 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'
您仍然需要编辑字符串的其他部分,因为我听不懂它,但这将使您到位。