C# 从另一个数据库SMO还原数据库

C# 从另一个数据库SMO还原数据库,c#,.net,sql-server,sql-server-2005,smo,C#,.net,Sql Server,Sql Server 2005,Smo,如何从另一个数据库还原数据库 当我从文件还原时,我会这样做: Restore sqlRestore=new Restore() 但如何从数据库中恢复?不是给bak文件,而是给数据库本身作为源 谢谢。我想你应该看看SMO传输对象 但是,尽管如此,复制完整数据库的最简单方法通常是备份数据库并使用不同的名称进行恢复。也可以使用复制数据库向导 有关更多信息,请参阅联机丛书中的“将数据库复制到其他服务器” BackupDeviceItem deviceItem = new BackupDeviceIte

如何从另一个数据库还原数据库

当我从文件还原时,我会这样做:

Restore sqlRestore=new Restore()

但如何从数据库中恢复?不是给bak文件,而是给数据库本身作为源


谢谢。

我想你应该看看SMO传输对象

但是,尽管如此,复制完整数据库的最简单方法通常是备份数据库并使用不同的名称进行恢复。也可以使用复制数据库向导

有关更多信息,请参阅联机丛书中的“将数据库复制到其他服务器”

 BackupDeviceItem deviceItem = new BackupDeviceItem(filePath, DeviceType.File);
    sqlRestore.Devices.Add(deviceItem);
    sqlRestore.Database = databaseName;

    ServerConnection connection = new ServerConnection(serverName, userName, password);
    Server sqlServer = new Server(connection);

    Database db = sqlServer.Databases[databaseName];
    sqlRestore.Action = RestoreActionType.Database;
    String dataFileLocation = dataFilePath + databaseName + ".mdf";
    String logFileLocation = logFilePath + databaseName + "_Log.ldf";


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


    sqlRestore.SqlRestore(sqlServer);