我想删除 SQL Server 数据库中一些未使用的文件组/文件,但由于 SQL Server 认为文件组/文件仍在使用中而被卡住。
一些背景:
我像这样查询未使用的文件组的 dm 视图:
SELECT
*
FROM sys.filegroups fg
LEFT OUTER JOIN
sysfilegroups sfg
ON fg.name = sfg.groupname
LEFT OUTER JOIN
sysfiles f
ON sfg.groupid = f.groupid
LEFT OUTER JOIN
sys.indexes i
ON fg.data_space_id = i.data_space_id
WHERE i.object_id IS NULL
Run Code Online (Sandbox Code Playgroud)
这为我提供了我试图从数据库中删除的文件组/文件列表。但其中一些无法删除。示例错误消息:
The filegroup 'FG_XXXX' cannot be removed because it is not empty.
Run Code Online (Sandbox Code Playgroud)我无法通过sys.data_spaces
和连接到这些文件组的表/索引sys.indexes
:
SELECT * FROM sys.data_spaces ds
INNER JOIN sys.indexes i
ON ds.data_space_id = i.data_space_id …
Run Code Online (Sandbox Code Playgroud)