• You might not be able to drop the filegroup because something still remains on it. Here are a couple of queries copied from other locations on the internet that helped me discern what was left on the filegroups:

    --Find objects on Filegroups:

    ---------------------------------------------

    SELECT

    TableName = OBJECT_NAME(p.object_id),

    PartitionNo = p.partition_number,

    FileGroup = FILEGROUP_NAME(a.data_space_id)

    --,IndexName = i.name

    FROM sys.allocation_units a

    INNER JOIN sys.partitions p ON a.container_id = CASE WHEN a.type in(1,3) THEN p.hobt_id ELSE p.partition_id END AND p.object_id > 1024

    LEFT JOIN sys.indexes i ON i.object_id = p.object_id AND i.index_id = p.index_id

    ORDER BY TableName, p.partition_number, FileGroup

    --Find HIDDEN objects on Filegroups:

    ----------------------------------------------------------------

    select case when indexes.type_desc in ('HEAP','CLUSTERED')

    then 'Table-' + indexes.type_desc

    else ' NC Index' end as indexType,

    rtrim(cast(

    case when indexProperty(objects.object_id,indexes.name,'IsUnique') = 1

    then 'unique ' else '' end +

    case when isNull(objectProperty(object_id(schemas.name + '.'

    + indexes.name),'IsConstraint'),0) = 1

    then 'constraint ' else '' end +

    case when indexProperty(objects.object_id,indexes.name,'IsAutoStatistics') = 1

    then 'auto ' else '' end +

    case when indexProperty(objects.object_id,indexes.name,'IsStatistics') = 1

    then 'statistics ' else '' end +

    case when indexProperty(objects.object_id,indexes.name,'IsHypothetical') = 1

    then 'hypothetical ' else '' end

    as varchar(30))) as indexProperties,

    schemas.name + '.' + objects.name as tableName,

    coalesce(indexes.name,'') as indexName,

    filegroups.name as filegroup

    from sys.indexes as indexes

    join sys.objects

    on indexes.object_id = objects.object_id

    join sys.schemas

    on objects.schema_id = schemas.schema_id

    join sys.filegroups as filegroups

    on indexes.data_space_id = filegroups.data_space_id

    where objectproperty(indexes.object_id,'IsMSShipped') = 0

    order by tableName, case when indexes.type_desc in ('HEAP','CLUSTERED') then 0 else 1 end