小编sar*_*rnu的帖子

无法删除未使用的文件组

我想删除 SQL Server 数据库中一些未使用的文件组/文件,但由于 SQL Server 认为文件组/文件仍在使用中而被卡住。

一些背景:

  • 我们有一些分区表,我们将它们转换回非分区表
  • 删除了所有分区函数和 -schemes
  • 我像这样查询未使用的文件组的 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)

sql-server filegroups sql-server-2008-r2

7
推荐指数
2
解决办法
3万
查看次数