Visual Studio 2013 - 数据库数据比较
Posted
技术标签:
【中文标题】Visual Studio 2013 - 数据库数据比较【英文标题】:Visual Studio 2013 - DB Data Compare 【发布时间】:2014-12-24 00:10:35 【问题描述】:我知道您可以使用 SSDT 在 Visual Studio 中比较和同步数据库之间的数据。但是有没有办法将数据库项目中的数据库数据与实际数据库进行比较?
我们目前使用 RedGate 来同步架构和数据,通常当有人在他们的本地数据库中进行数据更改时,他会将其与 redgate 项目脚本同步并将它们签入 GIT,以便每个人都可以将他们的本地数据库与这些 redgate 脚本同步到保持最新。 RedGate 变得太贵了,我们正在寻找替代品,看起来 Visual Studio 有 SSDT 允许做这些事情。
所以我能够在 VS 中创建一个数据库项目并从数据库中导入架构,所以现在所有开发人员都可以在架构更改时保持最新状态,但它没有选择对数据库数据做同样的事情。没有创建数据脚本(并将它们添加到数据库项目)以与 DB 进行比较的选项,正如我所说,它只允许您在 DB 之间进行数据比较,但不能在 DB 和 DB 项目脚本之间进行数据比较,至少这是我发现的远的。有没有办法做到这一点,以便我们可以包含数据脚本并能够将它们与 DB 同步?
【问题讨论】:
据我所知,项目中的数据无法与数据库同步。这没有多大意义。您可能可以编写一些东西来查看各种表并以可重用的方式同步这些数据,但是没有内置的东西可以做到这一点。即使是“bacpac”文件也使用 bcp 作为数据,所以没有太大帮助。我认为您可以保存数据比较(虽然不是很好),但最好的办法是此时在部署前/部署后脚本中维护数据。 :-/ 谢谢,我在考虑部署前/部署后脚本,但我们有很多表和数据,据我了解,您需要为每个表更新这些脚本,即它没有t 一次输出所有表的数据脚本,是吗? 我认为它确实如此,但我已经有一段时间没有在那个规模上使用它了。您可能需要考虑一两个 Red Gate SQL Data Compare Pro 许可证,生成启动脚本,并使用它们来帮助您入门。然后从同一个巨大/启动脚本开始,与每个人一起做与您的个人工作项目相关的增量。如果你想走这条路,你甚至可以只为“新”/空数据库调用那个巨大的脚本。 与将数据库中的架构更改拉入VS相关:***.com/questions/29333409/… @tbone,一点关系都没有…… 【参考方案1】:您可以在 MERGE-scripts 中检查静态表并将它们作为 Post Scripts 包含在内。 合并语句将确保您的目标表在发布时具有正确的行(合并中的插入/更新/删除将执行此操作)。 为每个表创建一个合并脚本文件,并将它们全部包含在您的 Post Script File 中。 唯一的区别/缺点是您不能导入合并脚本,您必须输入代码以对其进行版本控制,或者编写生成 SQL Merge 语句的 SP。
【讨论】:
以上是关于Visual Studio 2013 - 数据库数据比较的主要内容,如果未能解决你的问题,请参考以下文章
Visual studio 2013打开报异常"Exception has been thrown by the target of an invocation"
找不到可安装的 ISAM Visual Studio 2012
Visual Studio Express 2013 和 Visual Studio 2013 之间的区别