我想编写由两个 SSDT 项目之间的模式比较产生的更改的脚本,但是当源和目标都是 SSDT 项目时,“生成脚本”按钮变灰/禁用。
“更新”按钮没有变灰。如果我想直接更新,我可以。但是我需要脚本,因为我使用这两个管理两个不在同一网络上的数据库环境(但需要与数据库架构和代码促销保持同步)。
另外,为了验证和加强,如果我的目标是一个真实的数据库而不是一个项目,我可以生成脚本。只有当目标是我无法生成脚本的项目时。不幸的是,我无法直接连接到目标数据库。
我真的很想避免为了生成脚本而在本地拥有每个客户端数据库环境的数据库副本(我已经为每个客户端创建了 SSDT 项目)。
这是故意限制吗?看起来很奇怪。我不能成为第一个必须管理我无法从我的开发机器直接连接到的客户端架构的人。
最佳答案
根据 Microsoft's page on Schema Compare(强调):
“如果目标是数据库或项目,您可以直接从架构比较窗口更新目标,或者如果目标是 数据库或数据库文件,您可以生成 更新脚本 。”
您描述的行为似乎是该功能的工作方式。
但是,如果您可以构建/编译您的项目,这将产生 .dacpac files(又名数据库文件),您可以使用架构比较来比较和生成脚本,或者看起来 command line version of SSDT (sqlpackage.exe) 似乎支持 .dacpac 的源和目标.
希望有帮助。
关于visual-studio-2013 - 脚本架构比较两个 SSDT 项目之间的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061235/