2010-11-14 1 views
5

से डेटाबेस नाम पुनर्प्राप्त करना मेरे पास एक बाक फ़ाइल है जिसमें डेटाबेस का बैक अप है।बाक फ़ाइल

मैं इस डेटाबेस को एक नए स्थान पर पुनर्स्थापित करना चाहता हूं और मुझे इस फ़ाइल से डेटाबेस नाम पुनर्प्राप्त करने की आवश्यकता है किसी भी विचार को कैसे करना है?

मुझे डेटा फ़ाइल स्थान और लॉग फ़ाइल स्थान को ओवरराइड करने की आवश्यकता है।

सहायता के लिए धन्यवाद।

उत्तर

11
RESTORE FILELISTONLY 
FROM DISK = 'full path to your .bak file' 

आपको बैकअप में वर्तमान फ़ाइल नाम दिखाएगा। यदि एक फ़ाइल में एकाधिक बैकअप हैं और आप "WITH FILE = X" निर्दिष्ट नहीं करते हैं तो आपको फ़ाइल में पहले बैकअप के लिए केवल जानकारी प्राप्त होगी।

RESTORE DATABASE MyNewDBname 
    FROM DISK = 'full path to your .bak file' 
    WITH 
     MOVE 'LogicalFilename_Data' TO 'D:\somepath\...\MyDB.mdf', 
     MOVE 'LogicalFilename_Log' TO 'D:\somepath\...\MyDB.ldf'; 
GO 

एसएमओ (नहीं परीक्षण किया) के साथ असहज रूपरेखा:

Restore restoreDB = new Restore(); 
restoreDB.Database = myDatabase.Name; 
// Specify whether you want to restore database, files or log 
restoreDB.Action = RestoreActionType.Database; 
restoreDB.Devices.AddDevice(@"D:\somepath\...\MyDBFull.bak", DeviceType.File); 

restoreDB.ReplaceDatabase = true; // will overwrite any existing DB  
restoreDB.NoRecovery = true; 

// you can Wire up events for progress monitoring */ 
// restoreDB.PercentComplete += CompletionStatus; 
// restoreDB.Complete += RestoreCompleted; 

restoreDB.SqlRestore(myServer); 

RefHow to restore a database from C#

+0

मैं, एसएमओ वस्तुओं के साथ काम कर रहा हूँ एसक्यूएल प्रश्नों –

+1

आप यह नहीं कहा कि आप इसे प्रोग्राम के रूप में करना चाहता था के साथ नहीं:

एसएमओ का उपयोग करके आप फ़ाइल सूची Restore.ReadFileList

देखें इसके अलावा का उपयोग कर प्राप्त कर सकते हैं। –

+1

मेरे पास एक एसएमओ और सी # टैग है :-( –