Pet*_*ter 6 database-project schema-compare
看起来好像Visual Studio Database Project没有解析SQLCMD变量进行模式比较.
我所有的同义词都是这样的
CREATE SYNONYM [dbo].[addressesExtDB] FOR [$(ExtDB)].[dbo].[addresses];
Run Code Online (Sandbox Code Playgroud)
但是它们会被报告为与数据库不同.
当我使用正确'Specify SQLCMD Variabeles...'的-settings 进行模式更新时,将var ExtDB设置为'ExtDBnn'结果Synonym,数据库被正确设置为:
CREATE SYNONYM [dbo].[addressesExtDB] FOR [ExtDBnn].[dbo].[addresses];
Run Code Online (Sandbox Code Playgroud)
重新比较操作再次将所有同义词错误地显示为不同.因此比较应该解析sqlcmd-variabeles并使用结果与数据库进行比较.我是否想念这样做的选项,或者您是否遇到过同样的问题并找到了某种解决方案?
小智 0
不,变量根本不会传递到 VS 中的架构比较(您可以通过向项目添加您自己的贡献者来验证这一点)。
有趣的是,即使使用 SqlPackage.exe,变量也仅传递到源,而不传递到目标。
面对这个问题时,我结束了在从数据库获取的 .dacpac 文件中进行数据库名称 -> 变量替换 - 一切都以这种方式进行,尽管这是一个相当大的黑客。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |