2009-07-10 10 views
2

Ich möchte eine jetzt angeblich redundante Datei in SQL Server (2005) löschen, aber wenn ich versuche, es fallen zu lassen, wird mir gesagt, dass die Datei nicht leer ist. Kennt jemand einen Weg, um herauszufinden, welche Daten noch in dieser Datei sind, damit ich alle Änderungen vornehmen kann, die ich brauche, um es fallen zu lassen?Wie finde ich heraus, welche Tabellen Daten in einer Datei in SQL Server haben?

+0

Was meinst du mit "Datei"? Es ist eine Tabelle oder eine Datenbank? –

+0

@Oleg. Eine Datei in SQL Server ist genau das: eine Datei auf dem Betriebssystem. – gbn

+0

Wie sqlservr.exe oder master.mdf? –

Antwort

4

Angenommen, Sie die Tabelle etc bewegt sind, werden Sie wahrscheinlich laufen müssen:

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

Siehe DBCC SHRINKFILE

Um zu überprüfen (dies ist ein cut and paste eines Nutzungs Skript I verwenden):

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] 
Verwandte Themen