Получить список файлов базы данных SQL Server, который отключен

У меня есть некоторые автономные базы данных на SQL-сервере. Я хотел бы знать, какие файлы на диске связаны с этими базами данных. Возможно ли получить список файлов автономных баз данных без их первого запуска?

Ответы

Ответ 1

Это даст вам список всех физических путей к файлам, связанных с любыми автономными базами данных, а также имя базы данных и тип файла:

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

Ответ 2

Список всех доступных, но автономных файлов базы данных SQL Server

В следующей инструкции будут перечислены все файлы, связанные с автономными базами данных SQL Server

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 предназначено для предотвращения появления записей более одного раза.