我正在努力通过VS2013部署SQLProj(数据库项目),我遇到了一个问题,我可以使用一些反馈。
当我发布更改时,它会对表执行CCRD(创建,复制,重命名,删除)操作。在PreDeploy脚本中创建和复制,在PostDeploy脚本中重命名,删除。我将这些语句封装在Try ... Catch块中并让它打印出错误消息。当Pre和Post部署脚本遇到问题时,发布完成,表明发布成功。当这些脚本遇到错误时,我需要将行为区别开来。我想在这些脚本中遇到的任何错误都会导致发布失败。我已经尝试过THROW命令抛出一个错误,并且我已经尝试将RAISERROR命令设置的严重性设置为20,当它执行时,根据BOL应该终止连接,但是发布仍然完成状态为"成功"。
答案 0 :(得分:2)
我们所做的就是分裂这个过程。我们将SQLPackage.exe与脚本操作一起使用。然后我们使用SQLCMD.exe来执行脚本。这样你就有一个包含pre / main / post的脚本,并且在发生错误时使用SQLCMD将停止执行。
答案 1 :(得分:0)
听起来你正在做正确的事,它应该有效。
如果我不得不猜,我会说: