Ssdt

SSDT 模式比較、刪除然後重命名儲存過程結果不正確

  • May 13, 2016

初始設置包含兩個腳本:

  • stored_procedure.sql
  • stored_procedureV2.sql

我所做的是:

  • 消除stored_procedure.sql
  • 重命名stored_procedureV2.sqlstored_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刪除。

引用自:https://dba.stackexchange.com/questions/96798