为什么在azure sql server上更新视图失败?



我们有一个sql部署包,又名dacpac,它改变了sql视图的定义。

是否有任何原因导致部署进程无法alter现有视图?部署管道的sql部署步骤正常运行,没有错误,因此没有任何线索。

它只是在我们的azure管道部署中无法工作,它在本地数据库上运行正常。这是我们第一次遇到这个问题,尽管我们已经使用了一年多的dacpac。

如果有人知道dacpacs是如何决定要发出什么alter语句的,那将是有用的。


对不起,这是有点模糊,但我们抓住稻草。如果可以的话,我们会放弃糟糕的dacpac系统,但这需要更长的时间。显而易见的答案是"它指向正确的数据库吗?"欢迎大家大胆猜测,

理想情况下,视图应该作为DACPAC发布的一部分进行更改。如果没有发生,可能是因为view被指定为排除对象。

/p: ExcludeObjectType=(STRING) Views
/p: ExcludeObjectTypes=(STRING) Views;Triggers

Sql包发布选项

只要从同一个构建中不断创建新版本,直到其中一个正确部署。

这不应该是答案,因为dacpac是不变的,但它最终工作。

我只能猜测这是因为dacpac通过检查数据库来确定在部署时要进行哪些更改,因此基本上是不确定的。这正是您不希望系统更改生产数据库模式的原因。

最新更新