【问题标题】:How do I find which database uses a file如何找到哪个数据库使用文件
【发布时间】:2009-08-31 09:34:08
【问题描述】:

使用 MS SQL Server 2005。

在我们的一台服务器上,我们的空间不足,所以我正在检查数据库、缩小、删除、备份等。

Data 目录中最大的文件(不小于.mdf,而不是.ldf)不是按照我们常用的命名约定命名的(它应该反映数据库的名称)。我无法移动文件,所以我知道它正在使用中,但我不知道哪个数据库使用它。

除了遍历这台服务器上的许多数据库之外,有没有办法解决这个问题?

我试过了

SELECT * FROM sys.database_files

但这只是给了我主数据库正在使用的文件。

编辑 我一直在寻找,发现如下:

SELECT * FROM sys.sysaltfiles

这会列出服务器上下文中的文件名和文件名。它还列出了 dbid,但这似乎与 sys.databases 中的 database_id 不同。

【问题讨论】:

    标签: sql-server database sql-server-2005 file


    【解决方案1】:

    由于您已选择主数据库作为当前数据库,因此您获得了主数据库正在使用的文件。如果您没有那么多个数据库,您可以手动遍历所有数据库并对其进行选择。

    试试

    SELECT * FROM sys.master_files
    

    【讨论】:

    • 我知道,但是这台服务器上有167个数据库。
    • 您输入的选择确实有效!它告诉我文件的物理名称以及它链接到的数据库。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2012-10-08
    • 1970-01-01
    • 2017-03-18
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多