VS Code与Rider中Schema Compare未正确处理SQLCMD变量DatabaseName的问题求助
VS Code与Rider中Schema Compare未正确处理SQLCMD变量DatabaseName的问题求助
大家好,最近我们团队在推进全量升级到新的SDK-style .sqlproj项目格式,结果卡在Schema Compare的SQLCMD变量处理上了,折腾好一阵没解决,想过来请教下有没有朋友遇到过类似情况?
具体情况是这样的:
- 我们的SQL代码里用到了
[$(DatabaseName)]这个SQLCMD变量,目标数据库那边的对应对象用的是这个变量解析后的实际数据库名称 - 不管在Rider还是VS Code里运行Schema Compare,工具始终把这个识别为差异,完全没正确解析变量做匹配
- 我特意测试了**勾选和取消勾选“Do not evaluate SQLCMD variables”**两个状态,甚至怀疑是不是这个选项的逻辑写反了,但结果都一样,差异还是存在
这个问题现在直接卡了我们全团队的升级计划,实在有点头疼。我把.sqlproj里的变量配置贴出来,大家帮我看看是不是哪里配置错了:
<ItemGroup> <SqlCmdVariable Include="DatabaseName"> <DefaultValue>MyDefaultDatabaseGoesHere</DefaultValue> <Value>$(SqlCmdVar__1)</Value> </SqlCmdVariable> </ItemGroup>
目前我已经排查的点:
- 确认变量的DefaultValue是正确的,也对应上了目标数据库的实际名称
- 分别在两个IDE里重复测试了多次,排除了单个工具的偶发问题
- 检查过项目的其他SQLCMD变量,其他变量好像没这个问题,唯独DatabaseName出状况
有没有朋友遇到过类似的变量解析问题?或者是不是我在配置里漏了什么细节?抑或是这两个IDE的Schema Compare工具对DatabaseName这个变量有特殊处理的bug?麻烦大家给点思路,谢谢了!




