Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

comment restaurer à l'aide de la classe de restauration de l'espace de noms Microsoft.SqlServer.Management.Smo

Le problème est là

sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));
sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName + "_log", logFileLocation));

ici databaseName signifie le nom de la base de données spécifiée dans le fichier de sauvegarde db. Mais vous spécifiez le nom de la base de données de destination.

Remplacez-le par le nom de la base de données d'origine

voici l'exemple de code pour lire les noms de base de données à partir du fichier de sauvegarde

DataTable dtFileList = sqlRestore.ReadFileList(serverName);
string dbLogicalName = dtFileList.Rows[0][0].ToString();
string dbPhysicalName = dtFileList.Rows[0][1].ToString();
string logLogicalName = dtFileList.Rows[1][0].ToString();
string logPhysicalName = dtFileList.Rows[1][1].ToString