ssdt dacpac:如何在使用数据删除表中的列时阻止dacpac生成错误

时间:2016-09-13 03:30:50

标签: sql-server sql-server-data-tools dacpac

我正在使用数据删除表xxx中的列。 DACPAC正在生成如下检查。

IF EXISTS (select top 1 1 from [dbo].[xxx])
    RAISERROR (N'Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT

所有数据迁移都在预部署脚本中完成。目前我已经手动评论了它。

如何防止它自动生成?

3 个答案:

答案 0 :(得分:3)

取消选中VS \ Publish \ Advanced \ General中的Block incremental deployment if data loss might occurred

enter image description here

答案 1 :(得分:2)

对于那些使用sqlpackage部署dacpac或使用Azure devops的用户,在其他参数中设置以下内容,它应该可以工作。

/p:BlockOnPossibleDataLoss=False

答案 2 :(得分:0)

这很可能是由于诸如触发器之类的依赖性造成的。

如果不确定是什么原因引起的,可以使用以下脚本进行识别

从sys.objects中选择* 其中Object_id =(OBJECT_ID('<对象阻止的名称'))