Rinominare un database
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure
Questo articolo illustra come rinominare un database definito dall'utente in SQL Server, nel database SQL di Azure o nell’Istanza gestita di SQL di Azure usando SQL Server Management Studio (SSMS) o Transact-SQL (T-SQL). Nel nome del database è possibile utilizzare qualsiasi carattere conforme alle regole per gli identificatori.
Nota
Per rinominare un database in Azure Synapse Analytics o in Parallel Data Warehouse, usare l'istruzione RENAME.
Limiti
I database di sistema non possono essere rinominati.
Non è possibile modificare il nome del database mentre altri utenti accedono al database.
Usare il monitoraggio attività di SSMS per trovare altre connessioni al database e chiuderle. Per altre informazioni, vedere Aprire monitoraggio attività in SQL Server Management Studio (SSMS).
In SQL Server è possibile impostare un database in modalità utente singolo per chiudere le connessioni aperte. Per altre informazioni, vedere Impostare un database in modalità utente singolo.
Nel database SQL di Azure è necessario assicurarsi che nessun altro utente abbia una connessione aperta al database da rinominare.
La rinominazione di un database non modifica il nome fisico dei file di database su disco o i nomi logici dei file. Per altre informazioni, vedere Database Files and Filegroups.
Non è possibile rinominare un database SQL di Azure configurato in una relazione di replica geografica attiva.
Autorizzazioni
È richiesta l'autorizzazione ALTER
per il database.
Usare SQL Server Management Studio (SSMS)
Usare la procedura seguente per rinominare un SQL Server o un database SQL di Azure usando SSMS.
In SSMS selezionare Esplora oggetti. Premere F8 per aprire Esplora oggetti. In alternativa, nel menu principale selezionare Visualizza>Esplora oggetti:
In Esplora oggetticonnettersi a un'istanza di SQL Server e quindi espandere l'istanza.
Assicurarsi che non siano presenti connessioni aperte al database. Se si usa SQL Server, è possibile impostare il database in modalità utente singolo per chiudere le connessioni aperte e impedire ad altri utenti di connettersi mentre si modifica il nome del database.
In Esplora oggetti espandere Database e fare clic con il pulsante destro del mouse sul database che si vuole rinominare, quindi selezionare Rinomina.
Immettere il nuovo nome del database, quindi selezionare OK
Se il database è il database predefinito, vedere Ripristinare il database predefinito dopo la rinominazione.
Aggiornare l'elenco di database in Esplora oggetti.
Usare Transact-SQL
Rinominare un database di SQL Server impostando la modalità utente singolo
Usare la procedura seguente per rinominare un database di SQL Server utilizzando T-SQL in SSMS, inclusi i passaggi per posizionare il database in modalità utente singolo. Dopo la ridenominazione, in questo esempio il database viene riportato alla modalità multiutente.
Connettersi al database
master
per l'istanza in uso.Aprire una finestra di query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. In questo esempio il nome del database
MyTestDatabase
viene modificato inMyTestDatabaseCopy
.Avviso
Per ottenere rapidamente l'accesso esclusivo, l'esempio di codice usa l'opzione di terminazione
WITH ROLLBACK IMMEDIATE
. Ciò comporterà il rollback di tutte le transazioni incomplete e l'immediata interruzione di qualsiasi altra connessione al databaseMyTestDatabase
.USE master; GO ALTER DATABASE MyTestDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy; GO ALTER DATABASE MyTestDatabaseCopy SET MULTI_USER; GO
Facoltativamente, se il database è il database predefinito, vedere Reimpostare il database predefinito dopo la ridenominazione.
Rinominare un database SQL di Azure
Usare la procedura seguente per rinominare un database SQL di Azure usando T-SQL in SQL Server Management Studio.
Connettersi al database
master
per l'istanza in uso.Aprire una finestra di query.
Assicurarsi che nessuno stia usando il database.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. In questo esempio il nome del database
MyTestDatabase
viene modificato inMyTestDatabaseCopy
.ALTER DATABASE MyTestDatabase MODIFY NAME = MyTestDatabaseCopy;
Backup dopo la modifica del nome di un database
Dopo la ridenominazione di un database in SQL Server, eseguire il backup del database master
. Nel database SQL di Azure questo processo non è necessario, perché i backup vengono eseguiti automaticamente.
Reimpostare il database predefinito dopo la ridenominazione
Se il database da rinominare è stato impostato come database predefinito di un account di accesso di SQL Server, è possibile che venga visualizzato l'errore 4064, Can't open user default database
. Usare il seguente comando per modificare il valore predefinito nel database rinominato:
USE [master]
GO
ALTER LOGIN [login] WITH DEFAULT_DATABASE=[new-database-name];
GO