My primary reason for this is to keep track of database schema changes for my application. In SQL Server Management Studio I am able to generate a create script which creates t
Try Microsoft SQL Server Database Publishing Wizard. This is a powerful flexible tool for scripting schema / data rom SQL Server.
Usually i make backups fom a database before start a new development on it.
the best way is restore the backup when needed, i don't know how to get it by the script way!
I wrote an open source command line utility named SchemaZen that does this. It's much faster than scripting from management studio and it's output is more version control friendly. It supports scripting both schema and data.
To generate scripts run:
schemazen.exe script --server localhost --database db --scriptDir c:\somedir
Then to recreate the database from scripts run:
schemazen.exe create --server localhost --database db --scriptDir c:\somedir
You didn't mention which version of SQL Server, but in SQL 2008 this is very easy
SQL 2008
 Expand Databases 
 Right Click Database
Choose Tasks > Generate Scripts
 Generate and
   Publish Dialog will open
 Choose your
   objects (i.e. Tables, procs, etc)
   Click Next On the Set Scripting
   Options choose Advanced Options
 Under
   General choose   SCRIPT DROP AND
   CREATE - SCRIPT DROP AND CREATE
    Types of Data To Script - Schema and
   Data 
Close Advanced Window
  Choose to
   save to file.
Watch out for difference in database collation. If you develop on a database with a case insensitive collation and try and run the SSMS generated scripts against as database with a case sensitive collation then errors in case will break the scripts.
Personally I use Microsoft Visual Studio 2010 Database Project with a Source Control Repository (SVN) to track changes to the schema.