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

nil*_*s1k 5 visual-studio-2013 sqlpackage sql-server-data-tools

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

根据 SO 上的另一篇文章,执行此类比较某些要求

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

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

目前,我有一个脚本来处理子弹号。1 通过使用 DACPAC 通过sqlpackage.exe进行模式比较。不过,似乎无法使用 sqlpackage 执行数据比较,而且我还没有找到任何其他替代方案。在 VS 2010 中,可以通过命令窗口运行数据比较,但我在 VS 2013 中没有看到任何关于此的文档......

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

小智 3

看来您是正确的,对于模式差异,只要 SSDT 安装在磁盘上(更多详细信息请参见此处),就有命令行支持,但还没有用于数据比较和更新的编程接口。