Сначала необходимо убедиться, что SMO (объекты управления SQL Server) установлены и доступны для вас на вашем компьютере разработчика.Обычно это имеет место, если на нем установлена какая-либо версия SQL Server.
Если у вас есть доступная библиотека SMO, вы можете использовать этот фрагмент кода для своей операции:
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
static void Main(string[] args)
{
// create instance of SMO Server object
Server myServer = new Server("(local)");
// create new instance of "Restore" object
Restore res = new Restore();
res.Database = "SMO"; // your database name
// define options
res.Action = RestoreActionType.Database;
res.Devices.AddDevice(@"C:\SMOTest.bak", DeviceType.File);
res.PercentCompleteNotification = 10;
res.ReplaceDatabase = true;
// define a callback method to show progress
res.PercentComplete += new PercentCompleteEventHandler(res_PercentComplete);
// execute the restore
res.SqlRestore(myServer);
}
// method to show restore progress
static void res_PercentComplete(object sender, PercentCompleteEventArgs e)
{
// do something......
}
Чтобы это работало, вам нужно иметь следующие ссылки на проект
, а пространство имен Microsoft.SqlServer.SmoExtended
реализовано в сборке под названием Microsoft.SqlServer.SmoExtended.dll
, которую следует найти вкаталог C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\
если у вас установлен SMO.
Если у вас не установлен SMO, вы можете получить его из здесь для SQL Server 2008 или здесь для SQL Server 2008 R2 (есть также более старая версия для SQL Server 2005)