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?
您可以使用目录视图 - 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
到临时表中并使用上述查询进行比较。如果它们不同,则有问题。
归档时间: |
|
查看次数: |
229 次 |
最近记录: |