zoukankan      html  css  js  c++  java
  • SqlServer查询文件组被占用情况

      在SqlServer中,删除一个文件组

    alter database [xxxxx] remove filegroup FGMonthTurnIntroduceByMonth13
    

      有时候会遇到如下报错:

    消息 5042,级别 16,状态 12,第 8 行
    无法删除 文件组'FGMonthTurnIntroduceByMonth13',因为它不为空。

      文件组被占用,常见的是里面有文件没删除、有分区方案使用了这个文件组,还有比如索引或LOB数据落到了这个文件组中。

      查询数据库的文件和文件组可以分别使用sys.database_files和sys.filegroups两个系统视图。查询一个文件组下是否有文件:

    select * from sys.database_files where data_space_id =(select data_space_id from sys.filegroups where name = 'FGMonthTurnIntroduceByMonth13')
    

      查询出来的结果,就是文件组FGMonthTurnIntroduceByMonth13下的文件。或者更简单的,使用sp_helpfilegroup系统存储过程。

    sp_helpfilegroup 'FGMonthTurnIntroduceByMonth13'
    

      

      第一个查询结果是文件组名称、id、文件个数。第二个查询结果是里面文件详细信息。

      如果文件组下没有文件,仍然提示这个文件组不为空的错误,还有可能是分区方案使用到了这个文件组,使用如下语句查询与该文件组关联的分区方案:

    select s.name,g.* from sys.filegroups g 
    left join sys.destination_data_spaces d on g.data_space_id=d.data_space_id
    left join sys.partition_schemes s on s.data_space_id=d.partition_scheme_id
    where g.name='FGMonthTurnIntroduceByMonth13'
    

      

      如果第一列是NULL,表示没有对应的分区方案。

  • 相关阅读:
    冲刺(五)
    第九周总结
    冲刺(四)
    2020年寒假假期总结0114
    2020年寒假假期总结0113
    大二暑假第一周总结--初次安装配置Hadoop
    2020年寒假假期总结0112
    大三课堂测试总结20191113
    大二暑假第七周总结--开始学习Hadoop基础(六)
    大二暑假第六周总结--开始学习Hadoop基础(五)
  • 原文地址:https://www.cnblogs.com/wangguanguo/p/8431401.html
Copyright © 2011-2022 走看看