Wenn Sie in SQL Server Transact-SQL verwenden, erfordert das Reduzieren der Größe einer Datendatei eine andere Syntax als das Erhöhen. Um eine Dateigröße mit T-SQL zu reduzieren, verwenden Sie DBCC SHRINKFILE
Befehl und geben Sie den Namen der Datendatei zusammen mit der Größe an, auf die Sie sie reduzieren möchten.
Nachfolgend finden Sie Beispiele für die Verringerung der Dateigröße einer Datendatei in SQL Server mithilfe von T-SQL.
Einfaches Beispiel
Hier ist ein einfaches Beispiel für die Reduzierung der Größe einer Datendatei mit T-SQL:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2, 5); GO
Das ist wahrscheinlich ziemlich selbsterklärend. Zuerst wechseln wir zu der Datenbank, deren Datendatei wir ändern wollen. Wir verwenden dann DBCC SHRINKFILE
um anzugeben, auf welche Datendatei und auf welche Dateigröße sie reduziert werden soll. Dies ist in MB, daher wird es in unserem Beispiel auf 5 MB reduziert.
Auf die Standarddateigröße reduzieren
Wenn Sie keine Dateigröße angeben, wird die Datei auf ihre Standardgröße reduziert. Die Standardgröße ist die Größe, die beim Erstellen der Datei angegeben wurde.
Beispiel:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2); GO
Datendatei kürzen
Sie können die Datendatei mit TRUNCATEONLY
kürzen Argument.
Hier ist ein Beispiel:
USE Solutions; GO DBCC SHRINKFILE ('Solutions', TRUNCATEONLY); GO
Datendatei leeren
Sie können eine Datendatei auch leeren, indem Sie EMPTYFILE
verwenden Argument.
Beispiel:
DBCC SHRINKFILE (Solutions2, EMPTYFILE); GO
Dadurch werden alle Daten aus der angegebenen Datei in andere Dateien in derselben Dateigruppe migriert. Daher müssen Sie sicherstellen, dass dies nicht die einzige Datei in der Dateigruppe ist (andernfalls erhalten Sie eine Fehlermeldung). EmptyFile versichert Ihnen auch, dass der Datei keine neuen Daten hinzugefügt werden.
Sobald Sie die Datei geleert haben, können Sie sie entfernen, wenn Sie dies möchten. Hier ist ein Beispiel für das Entfernen der geleerten Datei:
ALTER DATABASE Solutions REMOVE FILE Solutions2; GO
Und wir können überprüfen, ob es entfernt wurde, indem wir Folgendes ausführen:
USE Solutions; GO SELECT file_id, name, type_desc, physical_name, size, max_size FROM sys.database_files ; GO