Create a copy of database with a new name
I have attached one of the dynamic scripts which help you create a backup and copy it to a new database.
To use the same please change the below information as required.
DECLARE @FirstDBName NVARCHAR(100),@NewDBName NVARCHAR(100),@BackupLocation NVARCHAR(100),@fileName NVARCHAR(1000)
SELECT @FirstDBName = 'Mitesh_Dev' – existing DB Name ,@NewDBName = 'mitesh_Dev01' – Required db name ,@BackupLocation= 'C:\Backup\'—Back Up Location
DECLARE @FirstDBName NVARCHAR(100),@NewDBName NVARCHAR(100),@BackupLocation NVARCHAR(100),@fileName NVARCHAR(1000)
SELECT @FirstDBName = 'Mitesh01',@NewDBName = 'Mitesh02',@BackupLocation= 'C:\Backup\'
SELECT @fileName = @BackupLocation+@FirstDBName+REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(16),SYSDATETIMEOFFSET(),120),'-',''),':',''),' ','')+'.bak'
BACKUP DATABASE @FirstDBName TO DISK = @fileName
DECLARE @SQL NVARCHAR(MAX) = N'RESTORE DATABASE @NewDBName FROM DISK = @fileName WITH FILE = 1, '
DECLARE @ParamterDefination NVARCHAR(MAX)= '@NewDBName NVARCHAR(100),@fileName NVARCHAR(1000)'
--SELECT +N'MOVE N'''+Name+''' TO N'''+REPLACE(filename,Name,@NewDBName+'_'+Name)+''',' FROM [master].sys.sysaltfiles where DBID = DB_ID(@FirstDBName)
SELECT @SQL = @SQL +CHAR(13)+CHAR(10)+N'MOVE N'''+Name+''' TO N'''+SUBSTRING(filename,0,LEN(filename)-CHARINDEX('\',REVERSE(filename))+2)+@NewDBName
+'_'+Name+RIGHT(filename,CHARINDEX('.',REVERSE(filename)))+''','
FROM [master].sys.sysaltfiles where DBID = DB_ID(@FirstDBName)
SELECT @SQL = @SQL+CHAR(13)+CHAR(10)+N'NOUNLOAD, STATS = 5 '
EXEC SP_EXECUTESQL @SQL,@ParamterDefination, @NewDBName = @NewDBName,@fileName= @fileName