Difference between Generate Script option at database level and backup and restore option When doing that generate scripts on the database level what difference does it do from doing a backup and restore on the database? It seems to me that they both provide the same purpose. What would be best to use between the two? Is one better than the other?
I am migrating database from one domain to another and both are different domain but have sql server 2012
With backup you have all data. Of course you can generate script for data, but for a DB with 1-2 GB the script will be very big and will execute long time. 

The best way in my point of view is detach/attach method. It will preserve the current state of the DB. Of course you can make backup before that. In that case you also have to take into account downtime for transferring database between servers.