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


9

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

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

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

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

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

Ответы:


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в временную таблицу и используйте приведенный выше запрос для сравнения. Если они разные, то есть проблема.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.