The database our developers are working on is too large (have a lot of database objects). We have to control db objects changes (change management). Our company cannot have a person who would be responsible for db changes only. So we need a source safe for database objects, something like version control for standard code, but more related to database, that can synchronize database and scripts. What is the best one. Reliable, Cheap, Functional - choose the two ones :)
ApexSQL Version, supports Visual Source Safe, Subversion, Team Foundation Server, SourceGear Vault and MSSCCI compliant versioning systems
Our team uses Visual Studio 2010 Database Projects. Most of our projects rely on MS Team Foundation Server for source control, which integrates seamlessly, but I found out recently it will work (with only a little pain) on other source systems. We have one such project on Perforce. The build and deploy features of VS2010 work very well and can be automated using PowerShell (very useful if for instance you wanted to restore a baseline to test deployments). Different configurations can be created if for example you want a full or differential deployment target.
You can also include data population or other scripts with your deployment, and those go under version control as well. Database objects may be managed by checking in scripts you create or you can use the more intuitive schema view. All of the dependancies are tracked. You can manage every aspect of your SQL Server DB under source control, including all of the properties, files and file groups, and permissions. Great for keeping standards and practices in place. It has a visual database diff tool, I prefer Red-Gate's implemtation of this feature, but you don't use the graphical compare to create deployments in VS2010 and it's become moot as I've grown comfortable with the MS builds and how much they help me keep my DB projects clean.
Unfortunately, I cannot compare at this level of depth with other systems for keeping databases under source control. I've worked quite a bit with "developer discipline", but I no longer consider that a system and never want to go back to that. Also had a brief stint using an SSMS plug-in to SVN but that was quite awhile ago. For that we had to use Red-Gate to generate deployment scripts.
The source control tool is designed to be a replacement of VSS and can integrate with SQL Server Management Studio.
DB Ghost is a good tool for versionizing your databases. Sync, compare, delta, copy, build, script...and it can be run via command line for automated jobs.
SQL Server 2008 R2 (and earlier) Source Control FYI: Database objects are not directly protected by the source control provider… Meaning you still have to use a disciplined convention… Because you can still make changes to database objects using other tools… http://technet.microsoft.com/en-us/library/ms173550%28v=sql.105%29.aspx
Unlike MS database projects RedGate SQL Source Control connects your databases to your version control system… http://www.red-gate.com/products/sql-development/sql-source-control/
We've just released our Database Enforced Change Management solution to MS-SQL.
Yes - I'm biased as I work in DBmaestro
I believe our product answer your needs and I would encourage you to read a comprehensive, unbiased review on Database Enforced Management Solution by veteran Database expert Ben Taylor which he posted on LinkedIn https://www.linkedin.com/pulse/article/20140907002729-287832-solve-database-change-mangement-with-dbmaestro
Our system Sql Historian removes the need for "developer discipline" by automatically maintaining the latest version of your db objects into SVN or TFS. It was designed to be transparent to your developers' current workflow, so you will have a perfect record in version control without any loss of time or complaints from the staff.