sqlpackage.exe 忽略 BlockOnPossibleDataLoss?

noj*_*lag 14 sql-server sql-server-2012 ssdt visual-studio-2012 data-tier-application

我有一个将 BlockOnPossibleDataLoss 设置为 false 的 dacpac,但是当我使用 sqlpackage.exe 运行它时部署被阻止,告诉我“列 [a] 被删除,可能会发生数据丢失。”

但是,当我使用完全相同的部署配置文件并从 Visual Studio 2012 发布时,它会通过。

Han*_*non 11

您是否尝试过/p:BlockOnPossibleDataLoss=false在命令行中执行 sqlpackage.exe ?

我只是使用 SQLPackage.exe 创建了我的测试数据库的 .dacpac 文件,然后我用/p:BlockOnPossibleDataLoss=false选项发布了它,它覆盖了我的数据库。


noj*_*lag 3

终于找到了问题,我在 powershell 脚本中执行 sqlpackage.exe,其中错误处理设置如下

$Script:ErrorActionPreference = "Inquire"
Run Code Online (Sandbox Code Playgroud)

因为我从未收到询问,所以我认为问题出在 sqlpackage.exe 上,但是在设置 ErrorActionPreference 后,我还包含了另一个 powershell 脚本,结果发现包含的脚本也设置了 ErrorActionPreference,但设置为“停止”。我仍然相信,如果我设置了 BlockOnPossibleDataLoss=false ,它不应该导致错误,但至少我现在有办法处理它。