Migrating SQL Server 2008 R2 to new server
This will work

Some gotchas:


@@SERVERNAME will be wrong. Fix as per this MSDN sp_addserver example
SQL Agent jobs (in msdb) may be "owned" by the old server. You'll have to script and recreate. However, this doesn't apply to SQL Server 2012 from what I can see: it used to for SQL Server 2000 which is the last time I did it....


Note that using DNS to "hide" the physical server is a useful trick. See these


https://stackoverflow.com/a/1335228/27535
https://stackoverflow.com/a/5237769/27535