You can rename a SQL database using the SQL Server Management Studio (SSMS), however there may be times that you do not have access SSMS or would like to script the task.
The following TSQL will rename a SQL Database:
ALTER DATABASE <database name> SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE <database name> MODIFY NAME = <new database name>
ALTER DATABASE <new database name> SET MULTI_USER
Replace the and values with your database names. Note that the database must be in SINGLE_USER mode in order to complete this ALTER DATABASE command. In the code above, the set option WITH ROLLBACK IMMEDIATE tells the SQL Server that if it can’t complete the command right away, then the other pending transactions should be rolled back. This is helpful if there are automatic connections being made to the database that are difficult to KILL.
The following script can also be used to rename a database:
declare @olddb sysname
declare @newdb sysname
declare @cmd varchar(max)
set @olddb = 'OldDbName' -- set the existing database name here
set @newdb = 'NewDBName' -- set the new database name here
set @cmd = 'ALTER DATABASE ' + @olddb + ' SET SINGLE_USER' -- you can add options to the command
set @cmd = 'ALTER DATABASE ' + @olddb + ' MODIFY NAME = ' + @newdb
set @cmd = 'ALTER DATABASE ' + @newdb + ' SET multi_user'