What is the best way to copy a database?

sql-server, sql-server-2008

Solution

Backup and Restore is the most straight-forward way I know. You have to be careful between servers as security credentials don't come with the restored database.

Problem

When I want to make a copy of a database, I always create a new empty database, and then restore a backup of the existing database into it. However, I'm wondering if this is really the least error-prone, least complicated, and most efficient way to do this?

Original source