繁体   English   中英

SQL 使用 SSDT 的服务器架构和数据比较

[英]SQL Server Schema and data comparison using SSDT

我正在尝试使用SQL Server Database tools > SchemaComparison/DataComparison进行数据比较并自动生成数据库升级脚本。

使用 VS 命令 window,我可以运行

> Tools.NewDataComparison [args...]
> SQL.DataCompareExportToFile [file]

生成包含所需插入/更新/删除的.sql文件。

现在我想 go 更进一步并使它自动化。

我一直在查看Microsoft.VisualStudio.Data.Tools.DataCompare, Microsoft.SqlServer.Dac和类似程序集,但没有找到上述任何方法。 哪个dll暴露了这些?

我还尝试使用devenv.exe运行这些方法(它仅启动 VS 并在命令窗口中执行 arguments),但仅在运行Tools.NewDataComparison时成功。 有没有办法链接或重用上下文,以便我可以在之后运行SQL.DataCompareExportToFile

我知道我可以使用SqlPackage.exe导出dacpacbacpac ,但只能对架构进行比较。 数据对比不行。 有没有办法使用bacpac进行比较?

我会接受任何允许我比较数据库并生成升级.sql脚本的解决方案。 在 C# 或任何其他脚本中。

不幸的是,我不能评论要求澄清。 如果这是 Visual Studio 中的数据库项目,您可以设置执行前和执行后脚本来管理数据更新。

我们把我们的分解成

参考数据 - Static 查找数据,我们删除并填充,因此参考数据始终干净且受控。

迁移数据 - 从另一个来源复制数据,基于正在运行的版本并且只执行一次。

沙盒数据 - 对齐数据以供前端进行可重复测试。 想想单元测试。 仅在非生产环境中运行。

因此,一旦您准备就绪,我们就可以使用 SqlPackage 升级包含 Pre 和 Post 脚本的 DAC。

如果您谈论的是实际比较 2 个数据库,那么我只知道可以执行此操作的客户端工具,例如 VS Data Compare 和 Red Gate。 但是您可以尝试在表之间使用合并,或者探索 SSIS 解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM