Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.

What are my options if I need to move a database from SQL Server 2012(32bit) to SQL Server 2005(64bit)?

I know I cannot:

restore a backup of the database on SQL Server 2005

detach & attach

I know I can:

use import data wizard, and I tried it on one database, but it only moves data, and even that was troublesome as I needed to do a lot of work creating temp tables to maintain identity columns, recreating all FKs, indexes etc.

+1 but keep in mind that there are certain things that just won't work at the destination (and I'm not sure how graceful 3rd party tools will handle all of that). Objects like SEQUENCEs, code like OFFSET / FETCH, LAG / LEAD, etc.
– Aaron Bertrand♦Dec 15 '13 at 20:17

Once you have the schema created by scripting and running those scripts against the older database, another option for transferring the data is to copy directly from one instance to another by setting up a linked server. It shouldn't be difficult to script up a loop that does all the work. To deal with FK constraints you'll need to make sure you copy the tables in an appropriate order or you could remove the FKs temporarily and reenable them after the copy. Similarly you'll want to disable any triggers in the destination during the copy.
– David SpillettDec 8 '15 at 13:06

In addition to the methods already suggested here, you could also try creating a BACPAC file and import it into your destination.
This is similar to how Microsoft recommends migrating your databases from on-prem to Azure cloud databases.

The benefit of it is that it's a combination of exporting schema as well as data, and it's not dependent on the database version, so you could theoretically import databases from any version to any version.

The downside of it is that before it generates the BACPAC file at the source, it runs some sort of strict validation process which can easily fail if you have references to objects outside your database (be it user or system databases), or if you have encrypted objects. But if you're lucky and it doesn't fail, then it can be a rather easy solution.

To start creating a BACPAC file, right-click on a database and select "Export Data-tier Application..." (be sure not to be confused with "Extract Data-tier Application..." which is something different):

You'll be presented with a simple wizard to guide you through the steps.
When you're done, you can use "Import Data-tier Application..." in your destination server, which you can see by right-clicking on the "Databases" node (again, don't be confused with "Deploy Data-tier Application..."):

This, too, will show you a simple wizard to guide you through the steps.

Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).