1

我正在使用 SQL Server / T-SQL 执行以下操作:

RESTORE DATABASE UAT
FROM DISK = 'E:\Databases\backup\MY_LIVE_20120720_070001.bak'
WITH REPLACE

但我希望能够使用忽略备份文件中文件名(代表日期)中的数字的文件位置。永远只有一个'MY_LIVE_****.bak',但它的数字字符串每天都会改变。

目标是每周使用最新的备份从实时恢复我的 UAT 实例——其中只有与该字符串前缀匹配的文件,但数字/日期每周都会改变。

4

2 回答 2

1

您可以使用xp_cmdshell为您的文件做一个目录。但是请注意,这xp_cmdshell通常是出于充分的理由而禁用的。鉴于这是 UAT,这可能不是问题。

有关更多信息,请参见此处http://www.sqlusa.com/bestpractices2005/dir/

于 2012-08-08T11:17:19.517 回答
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
于 2012-08-08T12:16:57.737 回答