आपको पहले यह सुनिश्चित करना होगा कि आपके पास एसएमओ (एसक्यूएल सर्वर प्रबंधन ऑब्जेक्ट्स) स्थापित है और आपके देव बॉक्स पर आपके लिए उपलब्ध है। यह आमतौर पर मामला है, अगर आपने उस पर SQL सर्वर का कुछ संस्करण स्थापित किया है।
आप एसएमओ पुस्तकालय उपलब्ध है, तो आप अपने ऑपरेशन के लिए इस कोड का उपयोग कर सकते हैं:
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\
निर्देशिका में पाया जाना चाहिए।
आप एसएमओ स्थापित नहीं हैं, तो आप एसक्यूएल सर्वर 2008 या here एसक्यूएल सर्वर 2008 R2 के लिए के लिए here से लाने (वहाँ भी SQL सर्वर 2005 के लिए एक पुराने संस्करण)
स्रोत
2010-10-17 14:42:36
एसएमओ वास्तव में इस तरह के एक सरल कार्य के लिए आवश्यक नहीं होना चाहिए। – driis
@driis: जब से .bak फ़ाइल प्रोग्रामेटिक रूप से एक साधारण कार्य का उपयोग कर रहा था? –
@driis: हाँ, अगर यह केवल यह कार्य है - तो एसएमओ अधिक हो सकता है। लेकिन ओपी इसे और अधिक करने के लिए बढ़ा सकता है। कभी-कभी यह भी एक विकल्प है - क्या मैं टी-एसक्यूएल कथन का उपयोग करना चाहता हूं और उनको निष्पादित करना चाहता हूं, या क्या मैं कुछ हासिल करने के लिए कार्य-विशिष्ट लाइब्रेरी का उपयोग करना चाहता हूं। –