SqlServer查询文件组被占用情况
2024-10-19 12:50:43
在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,表示没有对应的分区方案。
最新文章
- PHP图片裁剪与缩放 / 无损裁剪图片
- JAVA Day3
- asp.net webapi初探(一)
- 异常处理与MiniDump详解(转)
- misc_register、 register_chrdev 的区别总结
- 使用日期工具类:DateUtil
- Backdoor CTF 2013: 电子取证 250
- css元素选择器 first-child nth-child
- MySQL事务以及隔离级别
- [转载]ISO 8601规则
- Linux 系统免密码登陆远程服务器
- ubuntu16.04下vim的安装与配置
- Linux 命令梳理
- sql语句之随机查询记录和批量插入--基于mysql
- C# MD5 32位加密 UTF-8编码
- 【Algorithm】插入排序
- Html dom 赋值
- FreeMarker MyEclipse IDE
- Python3 函数式编程自带函数
- css修改placeholder的样式
热门文章
- Umbraco back office 中templates显示不出来问题解决 (一片空白)
- hdu1083
- nej 搭配 vue 方案
- Note: Secure Deduplication with Efficient and Reliable Convergent Key Management (Dekey)
- Mac 安装flutter 踩坑记
- oracle函数获取汉字拼音的首字母
- P1168 中位数(对顶堆)
- QPS,TPS,吞吐量,响应时间详解及关系
- 手写的select 下拉菜单
- poj2186-Popular Cows(强连通分支)