In SQL Server, quando si usa Transact-SQL, la riduzione delle dimensioni di un file di dati richiede una sintassi diversa per aumentarlo. Per ridurre le dimensioni di un file utilizzando T-SQL, utilizzare DBCC SHRINKFILE
comando e fornisci il nome del file di dati insieme alla dimensione a cui desideri ridurlo.
Di seguito sono riportati esempi di riduzione delle dimensioni di un file di dati in SQL Server utilizzando T-SQL.
Esempio di base
Ecco un esempio di base di riduzione delle dimensioni di un file di dati utilizzando T-SQL:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2, 5); GO
Questo è probabilmente abbastanza autoesplicativo. Innanzitutto, passiamo al database di cui vogliamo modificare il file di dati. Quindi utilizziamo DBCC SHRINKFILE
per specificare a quale file di dati e a quale dimensione ridurlo. Questo è in MB, quindi il nostro esempio lo ridurrà a 5 MB.
Riducilo alla dimensione del file predefinita
Se non specifichi una dimensione del file, il file verrà ridotto alla dimensione predefinita. La dimensione predefinita è la dimensione specificata al momento della creazione del file.
Esempio:
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2); GO
Tronca il file di dati
Puoi troncare il file di dati utilizzando TRUNCATEONLY
argomento.
Ecco un esempio:
SoluzioniUSE Solutions; GO DBCC SHRINKFILE ('Solutions', TRUNCATEONLY); GO
Svuota un file di dati
Puoi anche svuotare un file di dati usando EMPTYFILE
argomento.
Esempio:
DBCC SHRINKFILE (Solutions2, EMPTYFILE); GO
Questo migra tutti i dati dal file specificato ad altri file nello stesso filegroup. Pertanto, dovrai assicurarti che questo non sia l'unico file nel filegroup (altrimenti riceverai un errore). EmptyFile ti assicura inoltre che non verranno aggiunti nuovi dati al file.
Dopo aver svuotato il file, puoi rimuoverlo se è quello che vuoi fare. Ecco un esempio di rimozione del file svuotato:
ALTER DATABASE Solutions REMOVE FILE Solutions2; GO
E possiamo verificare che sia stato rimosso eseguendo quanto segue:
SoluzioniUSE Solutions; GO SELECT file_id, name, type_desc, physical_name, size, max_size FROM sys.database_files ; GO