2010-09-21 18 views
15

पर SQL सर्वर डेटाबेस की फ़ाइल सूची पुनर्प्राप्त करें मेरे पास SQL ​​सर्वर पर कुछ ऑफ़लाइन डेटाबेस हैं। मैं जानना चाहता हूं कि डिस्क पर कौन सी फाइलें इन डेटाबेस से संबंधित हैं। क्या उन्हें पहले ऑनलाइन ले जाकर ऑफ़लाइन डेटाबेस की फ़ाइल सूची पुनर्प्राप्त करना संभव है?ऑफ़लाइन

उत्तर

30

यह आपको, सभी भौतिक फ़ाइल पथ किसी भी ऑफ़लाइन डेटाबेस से संबंधित की एक सूची दे देंगे डेटाबेस नाम और फ़ाइल प्रकार के साथ:

SELECT 
'DB_NAME' = db.name, 
'FILE_NAME' = mf.name, 
'FILE_TYPE' = mf.type_desc, 
'FILE_PATH' = mf.physical_name 
FROM 
sys.databases db 
INNER JOIN sys.master_files mf 
ON db.database_id = mf.database_id 
WHERE 
db.state = 6 -- OFFLINE 
0

सूची सभी उपलब्ध है, लेकिन ऑफ़लाइन एसक्यूएल सर्वर डेटाबेस फाइल

निम्नलिखित कथन संबंधित सभी फाइलों को सूचीबद्ध करेगा ऑफ़लाइन एसक्यूएल सर्वर डेटाबेस

SELECT 
    m.physical_name + '\' + m.name AS [file_path] 
FROM 
    sys.databases AS d 
    INNER JOIN sys.master_files AS m ON d.database_id = m.database_id 
WHERE 
    d.state_desc = 'OFFLINE' 
    --AND m.type_desc = 'ROWS' 
GROUP BY 
    m.physical_name + '\' + m.name 

नोट के साथ: टिप्पणी हटाएं लाइन AND m.type_desc = 'ROWS' (हटाना -) सूची फिल्टर करने के लिए आगे केवल डेटाबेस फ़ाइलों को शामिल करने के लिए। अन्यथा, लॉग फाइल भी सूचीबद्ध की जाएगी।

GROUP BY क्लॉज एक से अधिक बार प्रदर्शित होने वाली प्रविष्टियों को रोकने के लिए है।

संबंधित मुद्दे