您需要的是Visual Studio Team System 2008数据库版(代号“DataDude”)。
它允许您以令人惊叹的方式对数据库对象进行版本控制(例如升级客户站点到特定版本,或回滚到以前的版本而不破坏任何数据)。
请查看Gert Drapers的博客上的功能,从此帖子开始。
或者如果您喜欢播客,请听DotNetRocks与Chris Sells在第494集中的演讲。
我不知道在使用DataDude时是否局限于TFS作为源代码控制,但它是Visual Studio系列中未被充分宣传的成员。
在我看来,Git和Mercurial是你应该考虑的唯二选择,其他两个太过老式。现代SCM应该像Git一样处理分支。
关于Git和Mercurial的比较,请参见以下链接: http://rg03.wordpress.com/2009/04/07/mercurial-vs-git/, http://www.russellbeattie.com/blog/distributed-revision-control-systems-git-vs-mercurial-vs-svn。
我没有使用过SSMS SCM集成,但据我所知,除了TFS之外,提到的这些系统都没有。我不认为这是一个劣势 - 例如,Git GUI是一个非常方便的工具,你会发现它比集成更加愉快。至少在我的情况下,从带有VS集成(使用Ankh)的SVN转移到没有任何集成的Git时是这样的...
如果你认为分布式版本控制系统是正确的选择,Mercurial可以与VisualHG集成。我们在我们的工作室中使用它来管理C++/C#项目,它运行得足够好。另一方面,我从未使用过任何“完整”的集成,所以我很高兴使用资源管理器扩展和/或命令行进行详细的VC工作。
TFS缺少VSS的一些功能,尤其是关键字扩展。如果您没有在源文件中嵌入修订关键字信息,则不应该担心。
可能有很多选择 - SQL Server管理工具 (SSMS) 支持与任何Microsoft源代码控制接口 MSSCCI提供程序集成。因此,您可以将搜索范围扩大到具有MSSCCI兼容提供程序的源代码控制系统。
在SSMS中,检查工具->选项->源代码控制,以查看安装在您的系统上的提供程序插件。
例如,Team Foundation Server与SQL Management Studio的集成是由TFS MSSCCI提供程序提供的。我认为有一个CVS/Subversion的提供程序(“Aigenta Unified SCC”)等等。
至于优缺点列表,我认为只要有兼容的提供程序,您就可以向更广泛的观众打开问题。我的主要经验是VSS、TFS和Subversion。这确实取决于您的团队和环境。您能否详细说明一下您的环境?
例如: