从另一个数据库SMO恢复数据库

时间:2010-11-18 07:02:48

标签: c# .net sql-server sql-server-2005 smo

如何从其他数据库恢复数据库?

当我从文件恢复时,我喜欢这样:

恢复sqlRestore = new Restore();

 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);

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

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你应该看看SMO Transfer对象。

但话虽如此,复制完整数据库的最简单方法通常是备份它并使用不同的名称恢复它。或者您可以使用“复制数据库向导”。

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