我正在尝试使用发布选项使用SQL Server数据工具更新目标数据库。我有自定义指令的预部署和部署后脚本。
问题在于:SSDT尝试从我的目标中删除索引numero
,但索引fk_numero
在我的参考架构中不存在,但由于它被约束fk_numero
用于外键实施而失败。此外键稍后将在脚本中删除,因为此表上将进行另一项更改。
我已经考虑过在我的预部署脚本中删除DROP CONSTRAINT fk_numero
,但是无论如何它都会失败,因为生成的脚本中稍后会调用IF EXISTS
:因为SSDT没有写{{1}在删除约束之前测试,在尝试删除不存在的东西时失败。
我还尝试使用NOCHECK CONSTRAINT ALL
禁用预部署脚本中的所有外键,希望我能够删除索引,但无济于事。
SSDT中是否有选项指定是否要生成DROP CONSTRAINT
脚本?或指示订单的选项?或者提示SSDT它应该在尝试删除约束之前测试约束是否存在?
答案 0 :(得分:0)
您可以尝试“在目标中但不在项目中的DROP对象”选项。
您是否使用自定义脚本来修改架构?
答案 1 :(得分:0)
我在使用SSDT时遇到了这个问题。原来这是一个已知的bug,已在Microsoft Connect上报告。但是,它似乎没有得到解决。
更新:
SSDT的May 2015 Update包含针对此问题的修复程序。