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