Ovviamente questo ha i suoi pro ed i suoi contro, ma il problema più grosso è che, nel passaggio, alcune strutture "si perdono" o non sono proprio presenti.
Una di queste è una lista di indici utili a velocizzare le estrazioni.
Ho quindi realizzato uno script che viene lanciato subito dopo il ripristino del backup. Il problema è che, a parte dei log non del tutto "puliti", non ho modo di sapere se l'effetto è quello voluto o meno.
E dato che lo script fa anche altro, non sono certo che tutti i comandi vengano eseguiti.
Per cui ho cercato un modo per controllare l'esistenza di un indice nel DB: se l'indice è presente, lo script ha funzionato.
Questo è il codice "generico" per il controllo della presenza di un indice:
use DATABASE_NAME;
if exists (
select top (1) object_id as index_exists
from sys.indexes
where name = N'index_name'
and object_id = object_id(N'schema_name.table_name')
)
begin
print 'Found index "index_name" on "schema_name.table_name".';
end;
else
begin
print 'Did not find index "index_name" on "schema_name.table_name".';
end;
basta cambiare index_name, schema_name (di solito è dbo) e table_name per effettuare il controllo specifico.