sql >> Base de Datos >  >> RDS >> Sqlserver

cómo restaurar usando la clase de restauración del espacio de nombres Microsoft.SqlServer.Management.Smo

El problema está aquí

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

aquí databaseName significa el nombre de la base de datos especificada en el archivo de copia de seguridad de db. Pero está especificando el nombre de la base de datos de destino.

Cámbielo al nombre original de la base de datos

aquí el código de muestra para leer los nombres de la base de datos del archivo de copia de seguridad

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