获取快照数据文件列表

Lum*_*mpy 3 sql-server t-sql snapshot sql-server-2012

我需要以编程方式删除一个包含所有快照的数据库,然后重新创建该数据库并创建一个新快照。我无法从查询中找到快照文件所在的位置。

本质上,我们有几个环境,它们在放置这些文件的位置上不一致,所以我需要我的代码足够聪明,以便将这些文件放回原来的位置。

澄清一下:当我说快照文件时,我指的是 .ss 文件。

spa*_*dba 7

您可以sys.databases通过列source_database_id不为空来识别数据库快照。

加入它sys.master_files,你就完成了:

SELECT mf.database_id,
    dbs.source_database_id,
    mf.type_desc,
    mf.name, 
    mf.physical_name
FROM sys.master_files AS mf
INNER JOIN sys.databases AS dbs
    ON mf.database_id = dbs.database_id
WHERE source_database_id IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

如果您需要过滤一个特定的源数据库,您可以将该谓词添加到WHERE子句中。