2009-07-10 39 views
2

我想在SQL Server(2005)中刪除一個現在應該是冗餘的文件,但是當我嘗試刪除它時,我被告知該文件不是空的。有沒有人知道一種方法來找出什麼數據仍然在這個文件,所以我可以做任何我需要的變化讓我放棄它?如何查找SQL Server中的文件中有哪些表有數據?

+0

你是什麼意思的「文件」?它是一個表或數據庫? – 2009-07-10 12:43:26

回答

4

假設你把桌子等,你可能需要運行:

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

DBCC SHRINKFILE

檢查(這是使用腳本的cut'n'paste我使用):

SELECT 
    ds.[name] AS LogicalFileName, 
    OBJECT_NAME(p.object_id) AS Thing, 
    SUM(au.total_pages)/128.0 AS UsedMB, 
    df.size/128 AS 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') = 0 
GROUP BY 
    ds.[name], OBJECT_NAME(p.object_id), df.size 
ORDER BY 
    ds.[name] 
相關問題