Skip to content Skip to sidebar Skip to footer

How Do I Find Out What Tables Have Data In A File In Sql Server?

I want to drop a now supposedly redundant file in SQL Server (2005), but when I try to drop it I am told that the file is not empty. Does anyone know of a way to find out what data

Solution 1:

Assuming you're moved the table etc, you'll probably need to run:

DBCC SHRINKFILE (MyLogicalFile, EMPTYFILE) --EMPTYFILE is the important bit!!

See DBCC SHRINKFILE

To check (this is a cut'n'paste of a usage script I use):

SELECT
    ds.[name] AS LogicalFileName,
    OBJECT_NAME(p.object_id) AS Thing,
    SUM(au.total_pages) / 128.0AS UsedMB,
    df.size / 128AS FileSizeMB,
    100.0 * SUM(au.total_pages) / df.size AS PercentUsed
FROM
    sys.database_files df
    JOIN
    sys.data_spaces ds ON df.data_space_id = ds.data_space_id 
    JOIN
    sys.allocation_units au ON ds.data_space_id = au.data_space_id 
    JOIN 
    sys.partitions p ON au.container_id = p.hobt_id
WHERE
    OBJECTPROPERTYEX(p.object_id, 'IsMSShipped') = 0GROUPBY
    ds.[name], OBJECT_NAME(p.object_id), df.size
ORDERBY
    ds.[name]

Post a Comment for "How Do I Find Out What Tables Have Data In A File In Sql Server?"