SSDT在创建发布预览时发布错误

Eri*_*ick 7 dacpac sql-server-data-tools

我使用Visual Studio 2013来管理包含我们的数据库架构的.sqlproj文件.该架构已成功部署了数十次.

尝试发布到一个特定目标数据库时,"创建发布预览"步骤似乎失败,但未给出错误.预览的输出包括一些预期的警告:

  • 列{...}被删除,可能会丢失数据
  • 如果执行此部署,对{...}的更改可能会在{...}中引入运行时错误
  • 此部署在执行期间可能会遇到错误,因为{...}的更改会被{...}在目标数据库中的依赖性阻止

我已取消选中"如果可能发生数据丢失,则阻止增量部署".

预览只是停止,没有生成脚本.

gor*_*rdy 16

当目标数据库中存在未包含在sqlproj中的存储过程(或视图或约束或其他对象)时,会发生这种情况,该存储过程引用将通过部署sqlproj而更改的表.SSDT显然无法确定更改是否安全,除非您的sqlproj中包含引用的东西,然后通过阻止部署在安全方面出错.

禁用"如果可能发生数据丢失则阻止增量部署"选项仅放宽数据丢失检查.如果可能发生运行时错误,则没有"阻止增量部署"选项.

你有三个选择:

  1. 将目标数据库中的任何存储过程,视图或其他内容添加到sqlproj中

  2. 取消选中ssdt发布选项中的"验证部署"选项(除非您了解其他引用的sproc并知道它们不会中断,否则这很危险)

  3. 如果您确定目标数据库中应存在的所有内容都包含在sqlproj中,则可以启用"在目标中但不在源中删除对象"选项