Trước tiên, bạn cần đảm bảo rằng bạn đã cài đặt SMO (Đối tượng quản lý SQL Server) và có sẵn cho bạn trên hộp dev của bạn. Đây là trường hợp điển hình, nếu bạn đã cài đặt một số phiên bản của SQL Server trên đó.
Nếu bạn có thư viện SMO có sẵn, bạn có thể sử dụng đoạn mã này cho hoạt động của bạn:
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......
}
Để làm việc này, bạn cần phải có các dự án sau đây tham chiếu
và không gian tên Microsoft.SqlServer.SmoExtended
được triển khai trong hội đồng gọi là Microsoft.SqlServer.SmoExtended.dll
cần được tìm thấy trong thư mục C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\
nếu bạn đã cài đặt SMO.
Nếu bạn không có cài đặt SMO, bạn có thể đi lấy nó từ here cho SQL Server 2008 hoặc here cho SQL Server 2008 R2 (có cũng là một phiên bản cũ cho SQL Server 2005)
Nguồn
2010-10-17 14:42:36
SMO nên không thực sự cần thiết cho một nhiệm vụ đơn giản như vậy. – driis
@driis: vì khi sử dụng tệp .bak một cách đơn giản, một nhiệm vụ đơn giản? –
@driis: vâng, nếu đó chỉ là nhiệm vụ này - thì SMO có thể quá mức cần thiết. Nhưng OP có thể mở rộng việc này để làm nhiều hơn. Đôi khi nó cũng chỉ là một lựa chọn - tôi có muốn sử dụng câu lệnh T-SQL và thực thi chúng hay không, hay tôi muốn sử dụng một thư viện nhiệm vụ cụ thể để đạt được điều gì đó. –