Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So stellen Sie mithilfe der Wiederherstellungsklasse des Microsoft.SqlServer.Management.Smo-Namespace wieder her

Problem ist hier

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

hier bedeutet Datenbankname den Namen der Datenbank, die in der DB-Sicherungsdatei angegeben ist. Aber Sie geben den Namen der Zieldatenbank an.

Ändern Sie ihn in den ursprünglichen Datenbanknamen

hier der Beispielcode zum Lesen von DB-Namen aus der Sicherungsdatei

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