如何以编程方式对 VS 2013 SSDT 项目执行数据比较?

How can I perform a data compare on a VS 2013 SSDT project programmatically?

Visual Studio 2013 有一个功能,允许在您的 SSDT 项目和目标数据库之间执行数据比较。

根据 SO 上的另一个 post,有 certain requirements with regards to performing such a compare

考虑到这些要求,我想在我们的构建和部署过程中做这样的事情:

  1. 将任何数据库架构更改发布到目标数据库,以确保源和目标具有完全相同的表、列、SP 等,以符合上面 link 中提到的要求
  2. 运行一次数据比较并生成更新脚本,或者将源DB中的任何更改直接发布到目标DB

目前,我有一个脚本可以处理第 1 号项目符号。 1 通过 sqlpackage.exe. It does not look like it is possible to perform a data compare using sqlpackage, though, and I have not found any other alternatives yet. In VS 2010 it was possible to run a data compare via the command window 使用 DACPAC 进行架构比较,但我在 VS 2013 中没有看到任何关于此的文档...

因此,我的问题是是否存在 API and/or 其他工具允许数据比较以编程方式 运行 通过例如一个 Powershell 脚本。

看来你是对的,只要在磁盘上安装了 SSDT (more details here),对于模式差异就有命令行支持,但是还没有用于数据比较和更新的编程接口。