两个 SQL Server 数据库共享相同的 MDF 和 LDF 文件但具有不同的数据

ror*_*.ap 4 sql-server ssms sql-server-2008-r2 datafile

我有一个奇怪的情况,我有一个生产数据库和一个还原副本作为同一个 SQL Server 实例上的另一个数据库,并且它们都使用相同的 MDF 和 LDF 文件(即它们在 SQL Server 中具有相同的“逻辑”文件管理工作室)。从我在研究时发现的情况来看,这是可能的,但所有迹象都表明它们都指向相同的数据,这是一个合理的假设。

但是,就我而言,两个数据库实际上包含不同的数据。如果我对两个同名表(每个数据库中一个)运行 select 语句,它们将返回不同的数据。我已经双重、三重和四重验证了这一点。这怎么可能?MS 文档或我发现的任何内容都没有谈到共享相同 MDF 文件但具有不同数据的两个数据库。

不涉及NDF文件,每个DB有一个文件组,每个文件组只有一个文件。

Tar*_*zer 11

不可能让两个数据库指向相同的数据库文件,除非在您链接到的奇怪的 Autoclose 情况下,无论如何都不应该使用该设置。

运行以下查询以查看数据库指向的物理文件:

SELECT database_id, name, physical_name 
FROM master.sys.master_files
Run Code Online (Sandbox Code Playgroud)

有了这些信息,您应该能够看到数据库实际上并没有指向相同的数据库文件。

您还可以在 SSMS GUI 中查看此信息。右键单击数据库,转到属性,然后转到文件。现在向右滚动,因为物理文件尚不可见。路径和文件名的组合将是唯一的。