SQL Server 2012 copy database failed
It might be easier to simply backup the database to a .bak and then create a new database from a .bak restore.

BACKUP DATABASE [aaa] TO DISK = N'E:\aaa.bak'


Then check the logical names and locations for the current files in the .bak:

Restore filelistonly from disk ='E:\aaa.bak'


And finally restore the database, renaming the files to make sure you don't overwrite your existing database

restore database Newdatabasename
FROM disk = 'E:\aaa.bak'
WITH replace,
MOVE 'Logical data name' TO 'E:\Newdatabasename.MDF',
MOVE 'Logical log name' TO 'E:\Newdatabasename.LDF',
recovery --force