Visual Studio 2010 SQL 数据库项目命令行架构比较

Posted

技术标签:

【中文标题】Visual Studio 2010 SQL 数据库项目命令行架构比较【英文标题】:Visual Studio 2010 SQL Database Project Command-Line Schema Compare 【发布时间】:2011-10-05 17:38:07 【问题描述】:

我使用 SQL 2008 数据库项目来跟踪我的所有数据库更改,并通过对它们运行架构比较轻松地更新数据库。

一件坏事是我需要在我想要执行架构比较的机器上安装 VS2010。

目前,我已经能够在远程服务器上打开一扇门并连接到它们,在我的机器上执行架构比较,但如果我可以在目标服务器上正确执行一切,那就太好了。

有没有办法只使用生成的数据库项目模式来执行模式比较?

【问题讨论】:

【参考方案1】:

我不确定为什么拥有 SQL2008 数据库并使用 VS2010 是一件坏事。我每天都这样做。但是如果你只是想比较两个 DB 模式(意思是 .dbschema 文件)。这里有一篇关于如何做的文章:http://msdn.microsoft.com/en-us/library/aa833435.aspx#comparewithvsdbcmd

【讨论】:

这实际上还不错,但我的生产机器上通常没有 VS2010,如果我无法在我的连接和生产 SQL 实例之间建立连接,更新这些数据库可能会很痛苦。基本上我更喜欢通过命令行执行来更新生产模式......这只是我抛出一些想法...... :) 那是另一回事。对于生产,我什至不信任模式比较 :) 我从源代码(在本例中为 TFS)中获取更改列表,并为每个对象自动创建部署脚本。这听起来像是很多工作,但它大多是自动化的,所以没什么大不了的。这样我就可以确切地知道 prod 中发生了什么,并有一个回滚脚本以防万一出现问题。 我谨慎使用模式比较。我取消选中了很多东西,然后将其复制/粘贴到 SSMS 以验证脚本,但是由于我有一个暂存环境,所以在发布到生产之前进行的几个暂存更新中检测到了大多数问题。所以基本上当我将它运行到生产环境时,很少会发生意想不到的事情。 手动创建架构更改对我来说是不可行的...在每个 sprint 中,我通常都会进行很多更改,真的很多,最重要的是,我的项目位于几个 WCF 服务的分布式平台,每个服务都有自己的数据库,因此手动更新我的所有数据库是很疯狂的。我的回滚脚本是在站点离线之后和开始更新过程之前的备份! :)

以上是关于Visual Studio 2010 SQL 数据库项目命令行架构比较的主要内容,如果未能解决你的问题,请参考以下文章

安装SQL数据库时遇到问题。需要更新以前的visual studio 2010实例

Visual Studio 2010 SQL 数据库项目命令行架构比较

用于从数据库项目中删除 SQL 文件的 Visual Studio 2010 宏

将数据库 sql server 2008 链接到 Visual Studio 2010

带有 SQL 的 Visual Studio 2010 探查器

如何在 Sql Data Tools Visual Studio 2010 中查看 <二进制数据> 内容?