In SQL Server, i database archiviano i propri dati e oggetti (come tabelle, viste, stored procedure e così via) in file. Quando si crea un database utilizzando le opzioni predefinite, vengono creati un file di dati e un file di registro. Tuttavia, non sei limitato a uno solo di ogni file. È possibile aggiungere file di dati (e file di registro) a un database in un secondo momento, se necessario.
Questo articolo contiene esempi di utilizzo di T-SQL per aggiungere un file di dati a un database esistente in SQL Server.
Esempio
Ecco un esempio di aggiunta di un singolo file di dati a un database esistente:
USE master; GO ALTER DATABASE Solutions ADD FILE ( NAME = Solutions_dat_2, FILENAME = '/var/opt/mssql/data/Solutions_dat_2.ndf', SIZE = 10MB, MAXSIZE = 100MB, FILEGROWTH = 5% ); GO
Questo aggiunge un file di dati con un nome logico di Solutions_dat_2 e con un percorso fisico di /var/opt/mssql/data/Solutions_dat_2.ndf
(questa è la posizione fisica sul computer).
Si noti che questo esempio utilizza percorsi di file Linux/Mac. Se utilizzi Windows, dovrai utilizzare le barre rovesciate (\
) invece delle barre (/
).
Ecco una spiegazione dei vari argomenti utilizzati in questo esempio:
NAME
- Specifica il nome del file logico. Questo è il nome logico utilizzato in un'istanza di SQL Server quando si fa riferimento al file.
FILENAME
- Questo è il percorso fisico completo del file (ovvero il percorso del sistema operativo al file).
SIZE
- Specifica la dimensione del file. Può essere specificato in KB, MB, GB o TB.
MAXSIZE
- La dimensione massima del file a cui il file può crescere. Può essere specificato in KB, MB, GB, TB o ILLIMITATO.
FILEGROWTH
- L'incremento automatico della crescita del file (la quantità di spazio aggiunta al file ogni volta che è richiesto nuovo spazio). Può essere specificato in KB, MB, GB, TB o %.
L'impostazione predefinita è MB
(per megabyte).
Verifica il risultato
Possiamo verificare il risultato eseguendo la seguente query:
SoluzioniUSE Solutions; GO SELECT name, physical_name FROM sys.database_files; GO
Risultato:
name physical_name --------------- --------------------------------------- Solutions /var/opt/mssql/data/Solutions.mdf Solutions_log /var/opt/mssql/data/Solutions_log.ldf Solutions_dat_2 /var/opt/mssql/data/Solutions_dat_2.ndf
Possiamo vedere il nuovo file di dati elencato oltre al file di dati originale (e al file di registro).
Ovviamente puoi anche usare l'asterisco (*
) per restituire tutte le colonne, se lo desideri.
Se scopri che un giorno non ti serve più, puoi sempre rimuovere il tuo nuovo file di dati.