Ich möchte eine jetzt angeblich überflüssige Datei in SQL Server (2005) löschen, aber wenn ich versuche, sie zu löschen, wird mir gesagt, dass die Datei nicht leer ist. Kennt jemand eine Möglichkeit herauszufinden, welche Daten sich noch in dieser Datei befinden, damit ich die erforderlichen Änderungen vornehmen kann, um sie löschen zu können?
Antwort
Zu viele Anzeigen?Angenommen, Sie haben den Tisch verschoben usw., dann müssen Sie wahrscheinlich laufen:
DBCC SHRINKFILE (MyLogicalFile, EMPTYFILE) --EMPTYFILE is the important bit!!
Zur Überprüfung (dies ist ein Cut'n'Paste eines Skripts, das ich verwende):
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]