2014-11-21 2 views
11

мне нужен запрос T-SQL для получения списка всех баз данных в SQL Server 2008 с указаниемSQL Server - получить все базы данных с MDF и LDF Расположение файла

  • имя базы данных и
  • местоположении файлов .mdf и .ldf.
+3

нанять кого-то, кто знает, программирования и SQL Server? Прочитайте документацию и потратите несколько минут, чтобы понять это самостоятельно? Здесь вы приходите, когда вы что-то пробовали. И приложите немного усилий. – TomTom

+0

Пожалуйста, используйте таблицу, sys.database_files –

+0

Согласовано. Если бы вы на самом деле просто разобрали его, у вас было бы уже много ответов. – Jaques

ответ

30
SELECT 
    db.name AS DBName, 
    type_desc AS FileType, 
    Physical_Name AS Location 
FROM 
    sys.master_files mf 
INNER JOIN 
    sys.databases db ON db.database_id = mf.database_id 
+1

Вместо того, чтобы присоединяться к таблице баз данных, вы можете «SELECT DB_NAME (database_id) AS DBName' –

6
select 
    d.name as 'database', 
    mdf.physical_name as 'mdf_file', 
    ldf.physical_name as 'log_file' 
from sys.databases d 
inner join sys.master_files mdf on 
    d.database_id = mdf.database_id and mdf.[type] = 0 
inner join sys.master_files ldf on 
    d.database_id = ldf.database_id and ldf.[type] = 1 
+0

Спасибо за ваше внимание и ответ –

+0

Мне не нравится это решение, потому что оно становится сложным, если в базе данных много файлов mdf/log. –

-3

Попробуйте этот запрос:

SELECT name [Database Name], physical_name [File Location],size *(8.0/1024) /1024 [Size in GBs] 
FROM sys.master_files 
+0

Хотя это отвечает на вопрос, это в основном повторение других ответов. В этом случае правильный способ пойти по этому вопросу - это ответить на другие ответы (если у вас есть достаточная репутация), повторите еще один ответ. –