Ho un file bak (che è un file di database di backup per un file mdf 2005 Express del server SQL) e dovrei ottenere il file MDF in modo che possa lavorare sulle sue tabelle, come posso ottenere il file MDF originale da questo file bak? Sto usando Visual Studio 2012, è necessario avere uno studio di gestione? Ho provato a ripristinare questo file bak in un database vuoto in un altro sistema che contiene SQL Express Server Management Studio 2008, ma dice che i database non corrispondono, che cosa sta andando male?ripristino del file MDF originale dal file bak
risposta
Se è stato creato un database vuoto, per sovrascriverlo con il backup sarà necessario specificare il parametro WITH REPLACE.
Inoltre, potrebbe essere necessario specificare il parametro MOVE per inserire i file nelle posizioni corrette.
Si dovrebbe essere in grado di trovare abbastanza facilmente queste opzioni nel GUI quando si fa il ripristino, o, in alternativa è possibile creare script fuori utilizzando il riferimento qui:
How to: Restore a Database to a New Location and Name (Transact-SQL)
Tenete a mente che il ripristino di una il file di backup del database non fornirà i file MDF (e LDF) originali. L'unico modo per ottenere il file MDF originale è copiarlo È possibile eseguire il T-SQL suggerito da steeleary in Visual Studio, vedere più qui: How to: Run SQL Scripts in Solution Explorer. Puoi anche farlo in SQL Server Management Studio.
Il database vuoto creato non aiuta molto, a meno che non si desideri sincronizzarlo con il backup. Ma per questo è necessario uno strumento di terze parti
Innanzitutto, eseguire quanto segue per individuare i nomi dei file logici nel backup. Questo esempio è per il backup denominata TestFull.bak memorizzati in E: \ Test
RESTORE FILELISTONLY
FROM DISK = 'E:\Test\TestFull.bak'
GO
I nomi logici devono essere utilizzati nello script successivo. Inoltre, aggiorna i percorsi e i nomi utilizzati
RESTORE DATABASE YourDB
FROM DISK = 'E:\Test\TestFull.bak'
WITH MOVE 'test1' TO 'E:\test\TestMDFFile.mdf',
MOVE 'test1_log' TO 'E:\test\TestLDFFile.ldf'
grazie Milena, ho il file MDF usando Management Studio, ma in realtà dovrei eseguire questa operazione tramite codice, cioè i miei utenti dovrebbero essere in grado di leggere i dati dal file bak, quindi dovrei essere in grado di ripristinare MDF dal file bak tramite codice, quindi collegarmi a MDF e leggere il database, come posso eseguire questa operazione nel mio codice C#? c'è qualche campione? –
@Ali_dotNet Non posso fare a meno di C# :( –
ok, usi un'altra lingua? –
grazie, ma come posso eseguire questa azione tramite codice? dove dovrei eseguire il codice di esempio fornito nel tuo link? Dovrei creare un oggetto SQLCommand ed eseguire quegli script? –
Puoi farlo, oppure puoi semplicemente eseguire i comandi nello studio di gestione SQL – steoleary