[英]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
导出dacpac
和bacpac
,但只能对架构进行比较。 数据对比不行。 有没有办法使用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.