如何找到现有数据库的 FamilyGUID

use*_*646 9 sql-server restore

执行RESTORE命令时,我知道 SQL Server 可确保现有数据库不会被其他数据库覆盖。可以使用 绕过此检查REPLACE

我知道 SQL Server 使用备份文件FamilyGUID来确定正在恢复的数据库是否与被覆盖的数据库相同。这样对吗?

我知道FamilyGUID可以使用确定备份文件的

RESTORE headeronly FROM DISK = N'Q:\MyBackup.bak'
Run Code Online (Sandbox Code Playgroud)

但是如何找到被覆盖的数据库的 FamilyGUID?

Kin*_*hah 9

您可以使用目录视图 - sys.database_recovery_status

SELECT DB_NAME(database_id) as DatabaseName, database_guid, family_guid
FROM master.sys.database_recovery_status
Run Code Online (Sandbox Code Playgroud)

通过比较family_guid备份文件和要恢复的数据库,您可以使您的恢复过程更加复杂 。

只需将 的信息转储RESTORE headeronly到临时表中并使用上述查询进行比较。如果它们不同,则有问题。