Sto scrivendo un'applicazione C# che scarica un backup del database compresso tramite FTP. L'applicazione deve quindi estrarre il backup e ripristinarlo nella posizione predefinita del database.C# SQL Ripristina il database nel percorso dati predefinito
Non saprò quale versione di SQL Server verrà installata sulla macchina su cui viene eseguita l'applicazione. Pertanto, ho bisogno di trovare la posizione predefinita in base al nome dell'istanza (che si trova nel file di configurazione).
Gli esempi che ho trovato tutti avevano una chiave di registro che leggevano, ma questo non funzionerebbe, poiché questo presuppone che sia installata una sola istanza di SQL.
Un altro esempio che ho trovato ha creato un database, letto le proprietà del file del database e l'eliminazione del database una volta eseguito. È semplicemente ingombrante.
Ho trovato qualcosa nel framework .NET che dovrebbe funzionare, vale a dire:
Microsoft.SqlServer.Management.Smo.Server(ServerName).Settings.DefaultFile
Il problema è che questo sta tornando stringhe vuote, che non aiuta.
Devo anche trovare l'account NT con cui è in esecuzione il servizio SQL, in modo che possa concedere l'accesso in lettura a tale utente sul file di backup una volta che l'ho estratto.
Immagino che abbia funzionato per te. Ho provato questo stesso comando ma non funziona. Getto un'eccezione su "Impossibile connettersi a MYCOMPUTERNAME". Non penso che sia un problema con il firewall. Forse l'ambito del permesso? ServerName è una stringa, corretta? Sarebbe meglio (nuovo Microsoft.SqlServer.Management.Smo.Server (yourServerName)). Information.RootDirectory? –
Brillante! Ho scavato per questo per qualche giorno. – StarPilot