De acuerdo...
Lo que he terminado haciendo es algo parecido a lo tuyo Mithrandir, que encontré buscando en internet...
Código:
IF EXISTS(SELECT NAME FROM SYSDATABASES
WHERE NAME = 'LA_BASE')
BEGIN
DROP DATABASE LA_BASE;
END
GO
RESTORE DATABASE LA_BASE
FROM DISK = 'G:\_Databases\Backups\LA_BASE.bak'
WITH RECOVERY,
MOVE 'LA_BASE' TO 'D:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\LA_BASE.mdf',
MOVE 'LA_BASE_log' TO 'D:\Archivos de programa\Microsoft SQL Server\MSSQL\Data\LA_BASE_log.ldf'
GO
Esto va bien. Pero si sobre el mismo archivo de copia de seguridad se han realizado varios guardados, tendrá varios contenido y entonces hay que elegir el contenido adecuado desde 'Restaurar >> Desde dispositivos >> Agregar dispositivo >> Ver contenido >> Seleccionar copia de seguridad'.
Por tanto, si en el contenido hay dos referencias y solo la más reciente y última tiene el diagrama, al realizar la restauración con el código expuesto al principio, se carga la primera copia de seguridad guardada, es decir la que no tenía el diagrama. Por eso creo que a veces, por no elegir bien pierdo el diagrama.
Por eso, despúes de restaurar por el código expuesto, hago de nuevo la restauración por el asistente eligiendo el contenido adecuado.