Per la tua situazione iniziale, sembra che tu abbia provato qualcosa del genere (o qualunque cosa la GUI ti prepari quando esegui le finestre di dialogo):
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;
Tuttavia, questo metodo richiede sia un mdf
file e un ldf
file. In caso contrario, viene visualizzato un messaggio di errore simile a:
Ora, c'è un modo per procedere anche se hai solo il mdf
file. Supponendo che tu abbia un mdf
file che è stato correttamente staccato da SQL Server, dovresti essere in grado di allegare il mdf
file senza un file di registro utilizzando la seguente sintassi:
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;
Tuttavia, sembra che nel tuo caso il file non sia stato scollegato correttamente da SQL Server:
Ci sono diverse possibili spiegazioni, comprese quelle menzionate nel messaggio di errore. Forse è stato recuperato da qualche SAN shadow non valido, o staccato durante la sola lettura, o ripristinato dopo che SQL Server o il sistema sottostante si sono arrestati in modo anomalo, o danneggiato durante la copia/download, o chissà cos'altro.
Dovrai tornare al supporto di Yaf, o al supporto del suo fornitore di servizi, per vedere se ci sono backup corretti disponibile o, in mancanza, copie alternative del mdf
file. Tieni inoltre presente che nessuno di noi sa davvero cosa sia Yaf o ha un modo per verificare di quale Yaf stai parlando.
Altrimenti, sembra che tu sia sfortunato, dato che questo particolare mdf
il file non è valido e quindi non ti porterà molto lontano.
Questo è esattamente il motivo per cui gli approcci di scollegamento / collegamento e/o copia di file a livello di O/S non sono metodi molto utili di backup (o migrazione, se è per questo) per SQL Server. È necessario un piano di backup/ripristino adeguato, il che significa eseguire backup completi/diff/log adeguati alla propria tolleranza alla perdita di dati. E staccare un database è quasi sempre un'idea scadente - quando succede qualcosa a mdf
file durante o dopo lo scollegamento, ora hai ZERO copie del tuo database.