2014-11-21 19 views
11

muszę zapytanie T-SQL dla listę wszystkich baz danych w SQL Server 2008 wykazująceSQL Server - zdobyć wszystkie bazy danych z MDF i LDF pliku Lokalizacja

  • nazwa bazy danych i
  • lokalizacji z plików .mdf i .
+3

zatrudnić kogoś, kto zna programowania i SQL Server? Zapoznaj się z dokumentacją i spędź kilka minut na samodzielnym zastanawianiu się nad tym? Oto przychodzisz, kiedy spróbujesz czegoś. I pokaż trochę wysiłku. – TomTom

+0

Proszę użyć tabeli, sys.database_files –

+0

Uzgodnione. Gdybyś tylko googlełkował, miałbyś już wiele dobrych odpowiedzi. – Jaques

Odpowiedz

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

Zamiast dołączać do tabeli baz danych, możesz "WYBRAĆ 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

Dziękuję za uwagę i odpowiedź –

+0

Nie podoba mi się to rozwiązanie, ponieważ komplikuje się, jeśli istnieje wiele plików mdf/log na bazę danych. –

-3

Spróbuj zapytanie:

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

Podczas gdy to odpowiada na pytanie, jest to w zasadzie powtórzenie innych odpowiedzi. W takim przypadku właściwą drogą do tego celu jest zdobycie innych odpowiedzi (gdy tylko uzyskasz wystarczającą reputację), nie powtarzaj kolejnej odpowiedzi. –

Powiązane problemy