¿Cómo encuentro el FamilyGUID de una base de datos existente?

9

Al ejecutar un RESTOREcomando, entiendo que SQL Server garantiza que una base de datos existente no se sobrescriba con una base de datos diferente. Esta verificación se puede omitir usando REPLACE.

Entiendo que SQL Server usa los archivos de respaldo FamilyGUIDpara determinar si la base de datos que se restaura es la misma que la base de datos que se sobrescribe. ¿Es esto correcto?

Entiendo que el FamilyGUIDarchivo de respaldo se puede determinar usando

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

Pero, ¿cómo puedo encontrar el FamilyGUID de la base de datos que se sobrescribe?

usuario1008646
fuente

Respuestas:

9

Puede usar la vista de catálogo: sys.database_recovery_status

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

Puede hacer que su proceso de restauración sea más sofisticado comparando el family_guid archivo de copia de seguridad y la base de datos a restaurar.

Simplemente descargue la información RESTORE headeronlyen una tabla temporal y use la consulta anterior para comparar. Si son diferentes, entonces hay un problema.

Kin Shah
fuente