Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何查找使用文件的数据库_Sql Server_Database_Sql Server 2005_File - Fatal编程技术网

Sql server 如何查找使用文件的数据库

Sql server 如何查找使用文件的数据库,sql-server,database,sql-server-2005,file,Sql Server,Database,Sql Server 2005,File,使用MS SQL Server 2005 在我们的一台服务器上,我们的空间不够了,所以我要检查数据库,缩小、删除、备份等等 数据目录中最大的文件(不少于.mdf,而不是.ldf)没有按照我们的通用命名约定命名(它应该反映数据库的名称)。我无法移动该文件,因此我知道它正在使用中,但我不知道哪个数据库使用它 除了遍历这个服务器上的许多数据库之外,还有其他方法可以解决这个问题吗 我试过了 SELECT * FROM sys.database_files 但这只是给了我主数据库正在使用的文件 编辑 我

使用MS SQL Server 2005

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

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

除了遍历这个服务器上的许多数据库之外,还有其他方法可以解决这个问题吗

我试过了

SELECT * FROM sys.database_files
但这只是给了我主数据库正在使用的文件

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

SELECT * FROM sys.sysaltfiles

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

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

试一试


我知道,但是这台服务器上有167个数据库。你输入的select实际上有效!它告诉我文件的物理名称以及它链接到的数据库。谢谢
SELECT * FROM sys.master_files