Rename DataBase in Sql Server

 This System stored procedure helps to rename the database without using any wizard

 Syntax to Use
  1. exec sp_renamedb    'old Database Name' 'New DataBase Name'
Entire script of the stored procedure will be look like as follows
  1. USE [TMS]  
  2. GO  
  3. /****** Object:  StoredProcedure [sys].[sp_renamedb]    Script Date: 08-12-2014 22:12:36 ******/  
  4. SET ANSI_NULLS ON  
  5. GO  
  6. SET QUOTED_IDENTIFIER ON  
  7. GO  
  8. ALTER procedure [sys].[sp_renamedb] --- 1996/08/20 13:52  
  9.     @dbname sysname,                -- old (current) db name  
  10.     @newname sysname                -- new name we want to call it  
  11. as  
  12.     -- Use sp_rename instead.  
  13.     declare @objid int              -- object id of the thing to rename  
  14.     declare @bitdesc varchar(30)    -- bit description for the db  
  15.     declare @curdbid int            -- id of database to be changed  
  16.     declare @execstring nvarchar (max)  
  17.   
  18.     --  If we're in a transaction, disallow this since it might make recovery impossible.  
  19.     set implicit_transactions off  
  20.     if @@trancount > 0  
  21.     begin  
  22.         raiserror(15002,-1,-1,'sys.sp_renamedb')  
  23.         return (1)  
  24.     end  
  25.   
  26.     --  Only the SA can do this.  
  27.     if not (is_srvrolemember('dbcreator') = 1)  
  28.     begin  
  29.         raiserror(15247,-1,-1)  
  30.         return (1)  
  31.     end  
  32.   
  33.     --  Make sure the database exists.  
  34.     if not exists (select * from master.dbo.sysdatabases where name = @dbname)  
  35.     begin  
  36.         raiserror(15010,-1,-1,@dbname)  
  37.         return (1)  
  38.     end  
  39.   
  40.     --  Make sure that the @newname db doesn't already exist.  
  41.     if exists (select * from master.dbo.sysdatabases where name = @newname)  
  42.     begin  
  43.         raiserror(15032,-1,-1,@newname)  
  44.         return (1)  
  45.     end  
  46.   
  47.     -- Check to see that the @newname is valid.  
  48.     declare @returncode int  
  49.     EXEC @returncode = sys.sp_validname @newname  
  50.     if @returncode <> 0  
  51.     begin  
  52.         raiserror(15224,-1,15,@newname)  
  53.         return(1)  
  54.     end  
  55.   
  56.     -- Don't allow the names of master, tempdb, and model to be changed.  
  57.     if @dbname in ('master''model''tempdb')  
  58.     begin  
  59.         raiserror(15227,-1,-1,@dbname)  
  60.         return (1)  
  61.     end  
  62.   
  63.     select @execstring = 'ALTER DATABASE '  
  64.         + quotename( @dbname , '[')  
  65.         + ' MODIFY NAME = '  
  66.         + quotename( @newname , '[')  
  67.   
  68.     EXEC (@execstring)  
  69.   
  70.     if @@error <>  0  
  71.     begin  
  72.         -- No need to raiserror as the CREATE DATABASE will do so  
  73.         return(1)  
  74.     end  
  75.   
  76.     return (0) -- sp_renamedb