无法删除文件组,因为它不为空错误
The filegroup cannot be removed because it is not empty Error
我在数据库中有一个文件组,其中没有无法删除的逻辑文件。错误消息指出文件组不为空。
我已使用以下查询验证不存在任何分区。
SELECT * FROM sys.partition_functions
SELECT * FROM SYS.PARTITION_RANGE_VALUES
SELECT * FROM SYS.PARTITION_SCHEMES
我也运行下面的查询试图找到与文件组相关的任何东西,但一无所获
SELECT
au.*,
ds.name AS [data_space_name],
ds.type AS [data_space_type],
p.rows,
o.name AS [object_name]
FROM sys.allocation_units au
INNER JOIN sys.data_spaces ds
ON au.data_space_id = ds.data_space_id
INNER JOIN sys.partitions p
ON au.container_id = p.partition_id
INNER JOIN sys.objects o
ON p.object_id = o.object_id
ORDER BY ds.name;
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.allocation_units i
ON fg.data_space_id = i.data_space_id
WHERE i.data_space_id IS NULL;
select * from sys.allocation_units
where data_space_id = (select data_space_id from sys.data_spaces where name = 'HL7');
此外,我已经能够备份数据库并恢复到不同的 SQL 服务器并重现这个问题。
还有什么可以检查以找出阻止删除文件组的原因?
我最近也有类似的情况。我运行
DBCC SHRINKFILE (N'myfile', EMPTYFILE)
之后我就可以删除文件了。
F运行kly 我没想到它会起作用,因为在我的例子中,文件组中没有其他文件。所以即使操作应该
Migrates all data from the specified file to other files in the same
filegroup
没有文件可以将数据迁移到。但它奏效了!没有错误或警告。在我毫无问题地删除文件之后。猜测有一些混乱的条目困扰着 REMOVE FILE 而不是 SHRINKFILE。
试一试,post 此处显示您的结果。
我在数据库中有一个文件组,其中没有无法删除的逻辑文件。错误消息指出文件组不为空。
我已使用以下查询验证不存在任何分区。
SELECT * FROM sys.partition_functions
SELECT * FROM SYS.PARTITION_RANGE_VALUES
SELECT * FROM SYS.PARTITION_SCHEMES
我也运行下面的查询试图找到与文件组相关的任何东西,但一无所获
SELECT
au.*,
ds.name AS [data_space_name],
ds.type AS [data_space_type],
p.rows,
o.name AS [object_name]
FROM sys.allocation_units au
INNER JOIN sys.data_spaces ds
ON au.data_space_id = ds.data_space_id
INNER JOIN sys.partitions p
ON au.container_id = p.partition_id
INNER JOIN sys.objects o
ON p.object_id = o.object_id
ORDER BY ds.name;
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.allocation_units i
ON fg.data_space_id = i.data_space_id
WHERE i.data_space_id IS NULL;
select * from sys.allocation_units
where data_space_id = (select data_space_id from sys.data_spaces where name = 'HL7');
此外,我已经能够备份数据库并恢复到不同的 SQL 服务器并重现这个问题。
还有什么可以检查以找出阻止删除文件组的原因?
我最近也有类似的情况。我运行
DBCC SHRINKFILE (N'myfile', EMPTYFILE)
之后我就可以删除文件了。
F运行kly 我没想到它会起作用,因为在我的例子中,文件组中没有其他文件。所以即使操作应该
Migrates all data from the specified file to other files in the same filegroup
没有文件可以将数据迁移到。但它奏效了!没有错误或警告。在我毫无问题地删除文件之后。猜测有一些混乱的条目困扰着 REMOVE FILE 而不是 SHRINKFILE。
试一试,post 此处显示您的结果。