I was wondering what are the best practices in order to write SQL scripts to set up databases for production and/or development, for instance: 

* Should I include the CREATE DATABASE statement?
* Should I create users for the database in the same script?
* Is correct to disable FK check before executing the body of the script?
* May I include the hole script in a transaction?
* Is better to generate 1 script per database than one script for all of them?

Thanks!