物理数据库和日志文件位置

时间:2010-08-16 23:37:15

标签: sql-server sql-server-2005

如何在SQL Server 2005中获取数据库的物理数据库和日志文件位置(文件系统路径)?

我用它来获取mdf文件:{SELECT [Name],FileName FROM sysdatabases}但是还需要获取日志文件......

干杯, 康纳

5 个答案:

答案 0 :(得分:6)

SELECT * FROM sys.database_files

答案 1 :(得分:2)

这是另一种方式

select * from sys.sysaltfiles

答案 2 :(得分:2)

您应该使用sp_helpdb或sp_helpfile。

e.g:

sp_helpdb 'master'

答案 3 :(得分:1)

尝试此T-SQL语句提供当前SQL Server实例中可用的所有数据库的数据/日志文件的逻辑名称和物理位置

SELECT db_name(database_id)as DatabaseName,name,type_desc,physical_name FROM sys.master_files

如果您使用的是SQL Server 2000,则可以执行以下T-SQL语句

SELECT db_name(dbid)as DatabaseName,name,filename FROM master.dbo.sysaltfiles

答案 4 :(得分:0)

我使用以下脚本来检索数据/日志文件名和路径:

declare @DBName                 sysname
        , @LogicalDataFile      sysname
        , @LogicalLogFile       sysname
        , @PhysicalDataFile     nvarchar(260)
        , @PhysicalLogFile      nvarchar(260)

set @DBName = '<database-name>'

-- Data file
select  @LogicalDataFile = name
        , @PhysicalDataFile = physical_name
from    sys.master_files
where   database_id = db_id(@DBName)
        and type_desc = 'ROWS'

-- Log file
select  @LogicalLogFile = name
        , @PhysicalLogFile = physical_name
from    sys.master_files
where   database_id = db_id(@DBName)
        and type_desc = 'LOG'

select  @LogicalDataFile as [@LogicalDataFile]
        , @LogicalLogFile as [@LogicalLogFile]
        , @PhysicalDataFile as [@PhysicalDataFile]
        , @PhysicalLogFile as [@PhysicalLogFile]

脚本信用转到此博客条目: http://sqlblogcasts.com/blogs/davidwimbush/archive/2009/07/28/how-to-get-the-logical-and-physical-file-names-for-a-database.aspx