Visual studio Visual Studio 2013-数据库数据比较

Visual studio Visual Studio 2013-数据库数据比较,visual-studio,visual-studio-2013,sql-server-data-tools,database-project,Visual Studio,Visual Studio 2013,Sql Server Data Tools,Database Project,我知道您可以使用SSDT在VisualStudio中比较和同步数据库之间的数据。但是有没有一种方法可以比较DB项目中的DB数据和实际的DB数据呢 我们目前使用RedGate来同步模式和数据,通常当有人在本地数据库中进行数据更改时,他会将其与RedGate项目脚本同步,并将其签入GIT,以便每个人都可以将其本地数据库与这些RedGate脚本同步,使之保持最新。RedGate变得太贵了,我们正在寻找替代方案,看起来VisualStudio有SSDT,可以做这类事情 因此,我能够在VS中创建一个数据库

我知道您可以使用SSDT在VisualStudio中比较和同步数据库之间的数据。但是有没有一种方法可以比较DB项目中的DB数据和实际的DB数据呢

我们目前使用RedGate来同步模式和数据,通常当有人在本地数据库中进行数据更改时,他会将其与RedGate项目脚本同步,并将其签入GIT,以便每个人都可以将其本地数据库与这些RedGate脚本同步,使之保持最新。RedGate变得太贵了,我们正在寻找替代方案,看起来VisualStudio有SSDT,可以做这类事情


因此,我能够在VS中创建一个数据库项目,并从DB中导入模式,因此,如果模式发生更改,现在所有开发人员都将保持最新状态,但它没有选项对DB数据执行相同的操作。没有选项创建数据脚本(并将它们添加到数据库项目)来与DB进行比较,正如我所说的,它只允许在DBs之间进行数据比较,而不允许在DB和DB项目脚本之间进行数据比较,至少到目前为止我发现了这一点。是否有一种方法可以做到这一点,以便我们可以包含数据脚本并能够将它们与DBs同步?

您可以签入静态表的合并脚本并将它们作为Post脚本包含。 merge语句将确保目标表在发布时具有正确的行(合并中的insert/update/delete将执行此操作)。 为每个表创建一个合并脚本文件,并将它们全部包含在Post脚本文件中。
唯一的区别/缺点是,您无法导入合并脚本,必须键入代码以控制其版本,或者编写生成SQL merge语句的SP。

据我所知,无法将项目中的数据与数据库同步。那没有多大意义。您可能会编写一些东西来查看各种表,并以可重用的方式同步这些数据,但没有内置任何东西可以做到这一点。即使是“bacpac”文件也使用bcp作为数据,因此没有太大帮助。我认为您可以保存数据(虽然保存得不好),但此时最好是在部署前/部署后脚本中维护数据:-/谢谢,我一直在考虑部署前/部署后脚本,但我们有很多表和数据,据我所知,您需要为每个表更新这些脚本,也就是说,它不会一次输出所有表的数据脚本,是吗?我想是的,但我在那个规模上使用它已经有一段时间了。您可能需要考虑一个或两个红门SQL数据比较PRO许可证,生成起始脚本,并使用这些来启动。然后,对每个人从相同的大型/启动脚本开始的单个工作项进行增量绑定。如果你想走这条路,你甚至只能为“新建”/“空数据库”调用这个巨大的脚本。与将数据库中的架构更改拉入VS:@tbone相关,这一点都不相关。。。