2
我想在SQL Server(2005)中刪除一個現在應該是冗餘的文件,但是當我嘗試刪除它時,我被告知該文件不是空的。有沒有人知道一種方法來找出什麼數據仍然在這個文件,所以我可以做任何我需要的變化讓我放棄它?如何查找SQL Server中的文件中有哪些表有數據?
我想在SQL Server(2005)中刪除一個現在應該是冗餘的文件,但是當我嘗試刪除它時,我被告知該文件不是空的。有沒有人知道一種方法來找出什麼數據仍然在這個文件,所以我可以做任何我需要的變化讓我放棄它?如何查找SQL Server中的文件中有哪些表有數據?
假設你把桌子等,你可能需要運行:
DBCC SHRINKFILE (MyLogicalFile, EMPTYFILE) --EMPTYFILE is the important bit!!
檢查(這是使用腳本的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]
你是什麼意思的「文件」?它是一個表或數據庫? – 2009-07-10 12:43:26