1
我与使用xp_dirtree从多个BAK-文件的目录拿起一个文件名,然后TSQL脚本工作恢复到数据库使用选定的文件名和目录。TSQL - 如何从文件中读取日期时间与xp_dirtree
但是,我想能够从所述文件夹中选择最近的文件。目前,该脚本仅在按文件名排序后才选择顶部。
的文件夹可能是这个样子:
------------
File1.BAK
File2.BAK
File3.BAK
File4.BAK
------------
我的剧本目前看起来是这样的:
DECLARE @dir varchar(60)
SET @dir = 'C:\TestFolder\'
CREATE TABLE #DirectoryTree (
id int IDENTITY(1,1)
,subdirectory nvarchar(512)
,depth int
,isfile bit);
INSERT #DirectoryTree (subdirectory,depth,isfile)
EXEC master.sys.xp_dirtree @dir,1,1;
DECLARE @file varchar(60) =
(SELECT TOP 1 subdirectory
FROM #DirectoryTree
WHERE isfile = 1 AND RIGHT(subdirectory,4) = '.BAK'
ORDER BY subdirectory DESC)
SET @dir = @[email protected]
PRINT '--Selected file: "'[email protected]+'"'
GO
DROP TABLE #DirectoryTree
--restores from file
restore database TESTDB
from disk = @dir
with replace, file = 1