I SQL Server, når du bruger Transact-SQL, kræver reduktion af størrelsen af en datafil en anden syntaks til at øge den. For at reducere en filstørrelse ved hjælp af T-SQL, brug DBCC SHRINKFILE
kommando, og angiv navnet på datafilen sammen med den størrelse, du gerne vil reducere den til.
Nedenfor er eksempler på reduktion af filstørrelsen af en datafil i SQL Server ved hjælp af T-SQL.
Grundlæggende eksempel
Her er et grundlæggende eksempel på at reducere en datafils størrelse ved hjælp af T-SQL:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2, 5); GO
Dette er nok ret selvforklarende. Først skifter vi over til databasen, hvis datafil vi vil ændre. Vi bruger derefter DBCC SHRINKFILE
for at angive hvilken datafil, og hvilken filstørrelse den skal reduceres til. Dette er i MB, så vores eksempel vil reducere det til 5 MB.
Reducer den til standardfilstørrelsen
Hvis du ikke angiver en filstørrelse, reduceres filen til standardstørrelsen. Standardstørrelsen er den størrelse, der blev angivet, da filen blev oprettet.
Eksempel:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2); GO
Trunker datafilen
Du kan afkorte datafilen ved at bruge TRUNCATEONLY
argument.
Her er et eksempel:
USE Solutions; GO DBCC SHRINKFILE ('Solutions', TRUNCATEONLY); GO
Tøm en datafil
Du kan også tømme en datafil ved at bruge EMPTYFILE
argument.
Eksempel:
DBCC SHRINKFILE (Solutions2, EMPTYFILE); GO
Dette migrerer alle data fra den angivne fil til andre filer i samme filgruppe. Derfor skal du sørge for, at dette ikke er den eneste fil i filgruppen (ellers får du en fejl). EmptyFile forsikrer dig også om, at ingen nye data vil blive tilføjet til filen.
Når du har tømt filen, kan du fjerne den, hvis det er det, du vil gøre. Her er et eksempel på fjernelse af den tømte fil:
ALTER DATABASE Solutions REMOVE FILE Solutions2; GO
Og vi kan kontrollere, at det er blevet fjernet ved at køre følgende:
USE Solutions; GO SELECT file_id, name, type_desc, physical_name, size, max_size FROM sys.database_files ; GO