Comment trouver le FamilyGUID d'une base de données existante

9

Lors de l'exécution d'une RESTOREcommande, je comprends que SQL Server garantit qu'une base de données existante n'est pas remplacée par une autre base de données. Cette vérification peut être contournée à l'aide de REPLACE.

Je comprends que SQL Server utilise les fichiers de sauvegarde FamilyGUIDpour déterminer si la base de données en cours de restauration est la même que la base de données en cours d'écrasement. Est-ce correct?

Je comprends que le FamilyGUIDfichier de sauvegarde peut être déterminé en utilisant

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

Mais comment puis-je trouver le FamilyGUID de la base de données qui est écrasée?

user1008646
la source

Réponses:

9

Vous pouvez utiliser la vue catalogue - sys.database_recovery_status

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

Vous pouvez rendre votre processus de restauration plus sophistiqué en comparant le family_guidfichier de sauvegarde et la base de données à restaurer.

Il suffit de vider les informations de RESTORE headeronlydans une table temporaire et d'utiliser la requête ci-dessus pour comparer. S'ils sont différents, il y a un problème.

Kin Shah
la source