我正在使用SQL Server / T-SQL执行以下操作:
RESTORE DATABASE UAT
FROM DISK = 'E:\Databases\backup\MY_LIVE_20120720_070001.bak'
WITH REPLACE
但我希望能够使用一个文件位置来忽略备份文件中文件名中的数字(代表日期)。只有一个'MY_LIVE_****.bak'
但它的数字字符串每天都会改变。
目标是每周使用最新备份从现场恢复我的UAT实例 - 其中只有文件匹配该字符串前缀,但数字/日期将每周更改。
答案 0 :(得分:1)
您可以使用xp_cmdshell
为您的文件创建目录。但请注意,xp_cmdshell
通常是有充分理由禁用的。鉴于这是UAT,这可能不是问题。
答案 1 :(得分:0)
ALTER DATABASE UAT
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
declare @fileName varchar(56);
SELECT @filename = physical_device_name
FROM msdb.dbo.backupmediafamily
WHERE media_set_id =(
SELECT TOP 1 media_set_id
FROM msdb.dbo.backupset
WHERE database_name='MY_LIVE'
ORDER BY backup_start_date DESC)
ALTER DATABASE UAT
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
----Restore Database
RESTORE DATABASE UAT
FROM DISK = @fileName
WITH REPLACE
/*If there is no error in statement before database will be in multiuser
mode.
If error occurs please execute following command it will convert
database in multi user.*/
ALTER DATABASE ASLA_DEV SET MULTI_USER
GO