初始设置包含两个脚本:
stored_procedure.sql
stored_procedureV2.sql
我所做的是:
- 消除
stored_procedure.sql
- 重命名
stored_procedureV2.sql
为stored_procedure.sql
当我在 SSDT 中执行.dacpac
不包含此更改的模式与我的项目之间的模式比较时,它建议的操作是仅删除而不stored_procedure.sql
执行任何其他操作,同时它应该删除stored_procedureV2.sql
并更新stored_procedure.sql
其新内容。
我假设这是模式比较获取信息的地方:
.sqlproj
来源:
...
<Build Include="Scripts\stored_procedure.sql">
<AnsiNulls>On</AnsiNulls>
<QuotedIdentifier>On</QuotedIdentifier>
</Build>
<Build Include="Scripts\stored_procedureV2.sql">
<AnsiNulls>On</AnsiNulls>
<QuotedIdentifier>On</QuotedIdentifier>
</Build>
...
目标的.sqlproj
:
...
<Build Include="Scripts\stored_procedure.sql">
<AnsiNulls>On</AnsiNulls>
<QuotedIdentifier>On</QuotedIdentifier>
</Build>
...
这是一个已知的问题?我需要分两步执行吗?有没有办法让 SSDT 以我想要的方式运行?
问题是
stored_procedure.sql
仍然有stored_procedureV2
程序名称。然后 SSDT 实际上做了一个正确的比较,说:stored_procedureV2.sql
未更改并被stored_procedure.sql
删除。