2014-11-21 10 views
11

Tôi cần một truy vấn T-SQL cho một danh sách của tất cả các cơ sở dữ liệu trong SQL Server 2008 cho thấySQL Server - nhận được tất cả cơ sở dữ liệu với MDF và LDF File Location

  • tên của cơ sở dữ liệu và
  • vị trí của các tệp .mdf.ldf.
+3

Thuê người biết lập trình và SQL Server? Đọc tài liệu và dành vài phút để tìm hiểu điều này? Ở đây bạn đến khi bạn thử một cái gì đó. Và cho thấy một số nỗ lực. – TomTom

+0

Vui lòng sử dụng bảng, sys.database_files –

+0

Đồng ý. Nếu bạn thực sự chỉ googled nó, bạn sẽ có tốt rất nhiều câu trả lời rồi. – Jaques

Trả lời

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

Thay vì tham gia vào bảng cơ sở dữ liệu, bạn có thể 'CHỌN 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

Cảm ơn bạn đã quan tâm và trả lời –

+0

Tôi không thích giải pháp này vì nó phức tạp nếu có nhiều tệp mdf/log cho mỗi cơ sở dữ liệu. –

-3

Hãy thử truy vấn này:

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

Trong khi điều này trả lời câu hỏi, đây là cơ bản lặp lại các câu trả lời khác. Trong trường hợp này, cách thích hợp để thực hiện điều này là đưa ra các câu trả lời khác (một khi bạn có đủ danh tiếng), không lặp lại câu trả lời khác. –

Các vấn đề liên quan