Как мне найти FamilyGUID обширной базы данных

9

При выполнении RESTOREкоманды я понимаю, что SQL Server гарантирует, что существующая база данных не будет перезаписана другой базой данных. Эту проверку можно обойти с помощью REPLACE.

Я понимаю, что SQL Server использует файл резервной копии, FamilyGUIDчтобы определить, совпадает ли восстанавливаемая база данных с перезаписываемой базой данных. Это правильно?

Я понимаю, что FamilyGUIDфайл резервной копии можно определить с помощью

RESTORE headeronly FROM DISK = N'Q:\MyBackup.bak'

Но как я могу найти FamilyGUID базы данных, которая перезаписывается?

user1008646
источник

Ответы:

9

Вы можете использовать представление каталога - sys.database_recovery_status

SELECT DB_NAME(database_id) as DatabaseName, database_guid, family_guid
FROM master.sys.database_recovery_status

Вы можете сделать процесс восстановления более сложным, сравнив family_guidфайл резервной копии и базу данных, подлежащую восстановлению.

Просто скопируйте информацию RESTORE headeronlyв временную таблицу и используйте приведенный выше запрос для сравнения. Если они разные, то есть проблема.

Кин Шах
источник