Anche se puoi sicuramente rinominare un database SQL Server nella GUI di SSMS facendo clic con il pulsante destro del mouse sul nome del database e selezionando Rinomina , a volte potresti preferire (o aver bisogno) di farlo utilizzando Transact-SQL.
Il modo più semplice per rinominare un database usando T-SQL è questo:
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO
L'unico problema con questo script di base è che non cambia il nome dei file di dati e dei file di registro. Nella maggior parte dei casi probabilmente vorrai cambiare i nomi di questi file in modo che corrispondano al nuovo nome. In tal caso puoi prendere il seguente script e sostituire il nome del database con il tuo (così come i suoi nomi di file e percorsi):
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO -- Change the logical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films', NEWNAME = 'Movies' ); -- Change the logical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films_log', NEWNAME = 'Movies_log' ); -- Change the physical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies', FILENAME = 'D:\mssql\data\Movies.mdf' ); -- Change the physical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies_log', FILENAME = 'D:\mssql\data\Movies_log.ldf' ); -- Check it (View the list of database files and their locations) USE master; SELECT name 'Logical Name', physical_name 'File Location', size 'File Size' FROM sys.master_files;
Questo script rinomina il database, rinomina i nomi logici del file di dati e del file di registro, quindi rinomina il nome del file fisico effettivo di tali file. Si conclude con la selezione di un elenco di tutti i file di database e le relative posizioni. Ciò ti consente di verificare che i tuoi file abbiano effettivamente il nome corretto.
Utilizzo di percorsi file Linux/Mac
L'esempio precedente utilizza la sintassi del percorso file di Windows (barre inverse e una lettera di unità). Se usi Linux o Mac, la sintassi del percorso del file sarà più simile all'esempio seguente (solo i percorsi dei file sono cambiati, tutto il resto rimane lo stesso).
-- Change to the master database USE master; -- Change the database name ALTER DATABASE Films Modify Name = Movies; GO -- Change the logical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films', NEWNAME = 'Movies' ); -- Change the logical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Films_log', NEWNAME = 'Movies_log' ); -- Change the physical name of the data file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies', FILENAME = '/var/opt/mssql/data/Movies.mdf' ); -- Change the physical name of the log file ALTER DATABASE Movies MODIFY FILE ( NAME = 'Movies_log', FILENAME = '/var/opt/mssql/data/Movies_log.ldf' ); -- Check it (View the list of database files and their locations) USE master; SELECT name 'Logical Name', physical_name 'File Location', size 'File Size' FROM sys.master_files;
Assicurati di eseguire il backup del database master dopo aver rinominato i tuoi database (ecco come eseguire il backup di un database con T-SQL). Potresti anche voler controllare/aggiornare tutti gli script che hai per assicurarti che facciano riferimento al nuovo nome del database.