Full of nice features: Scripts all objects into a standard and logical structure in file system. Comparisons and version-control are only possible when all developers use the same convention. Scripts do not contain environmnent-specific info, so you can compare only what really matters. No database names, system-generated names, or column order differences. Table columns are ordered alphabetically (after primary key columns), so you can compare only what really matters. Object identifiers are normalized with fully qualified names (with schema) and surrounded by brackets. No more worries about creating an object under the wrong schema. SQL Server scripts can be compared to working folder scripts, and differences can be either applied to the Database (creating or updating objects) or to the Scripts. WinMerge is integrated into context-menu so that it's easy to compare between the SQL Server and the working folder. All scripts are created using "CREATE", but Servantt automatically replaces by ALTER when necessary. No more worries about replacing CREATE vs ALTER on each environment. No more dropping/recreating objects. Objects are updated using ALTER so you don't have to worry about losing permissions or scripting different permissions for each environment. Dropping of objects is fully supported. Dropping an object will delete the corresponding script from the working folder, and vice-versa. Working folder can be connected to any version-control like Git, Subversion, TFS, Sourcesafe, or any other. You can even work without version-control. Fixes carriage-return differences (bug in SQL Management Studio). Extracts triggers and tables individually.
Servantt Lite is a freeware tool for helping you correctly keep your SQL objects into source control. It is fully functional, does not have any limitation, and is free for personal and commercial use. And will always be free.