I need to backup and restore a db on sql server 2008R2 to sql server 2008. The backup file is not compatible this way. The other option that i found is to generate scripts that include data. Will the inserts succeed since i have the db normalised with lots of foreign keys?
Is there any other reliable approach?
As you noted: the direct restore cannot be done. SQL Server has never been backwards compatible in the sense of restoring a database from a newer version back to a server with an older version.
What you could do is use generated INSERT statements (using SSMS directly, or a handy add-in such as SSMS Toolpack), or you could use a good SQL DIFF tool like Red-Gate SQL Data Compare to compare your two databases (even from a backup file, in the pro version!) and update one from the other.