gpt4 book ai didi

visual-studio-2012 - 触发器正在阻止数据库项目发布

转载 作者:行者123 更新时间:2023-12-04 12:31:41 25 4
gpt4 key购买 nike

我有一个 Visual Studio 2012 数据库项目,其中包含我的数据库架构。在部署后脚本中,我自动创建了许多触发器,负责记录对表数据的更改。

不幸的是,当我随后修改表并重新发布(在这种情况下,添加身份规范)时,我现在收到此错误:

This deployment may encounter errors during execution because changes to [dbo].[BenefitInfoVendor] are blocked by [dbo].[tr_BenefitInfoVendor_Audit]'s dependency in the target database.



然后发布拒绝继续进行创建发布预览...步骤。

如果我手动删除触发器,则发布成功。但是我不想每次从现在开始更新架构时都要记住手动执行此操作(或将其传达给其他开发人员!)。

我已经尝试在预部署脚本中删除所有触发器,但这还不足以“很快”阻止此错误。

有什么方法可以在 Visual Studio 中抑制此错误,或者让它知道我将自己处理触发器?

最佳答案

在随后的项目中,我找到了一个似乎可以解决此问题的解决方案。我向每个表脚本添加了一个 stub ,它创建了一个与生成的触发器同名的最小触发器,但它什么都不做。

这是少量的额外输入,允许我保留触发逻辑。

CREATE TABLE [dbo].[AlertingDeviceTypes]
(
[AlertingDeviceTypeId] INT NOT NULL PRIMARY KEY IDENTITY,
[Name] NVARCHAR(MAX) NOT NULL,
--Other fields...
[Deleted] BIT NOT NULL DEFAULT 0,
[DeletionId] UNIQUEIDENTIFIER NULL
)
GO

CREATE TRIGGER [dbo].[tr_AlertingDeviceTypes_SetDeletionId] ON [dbo].[AlertingDeviceTypes] After UPDATE
AS
BEGIN
--This is a placeholder for the autogenerated trigger.
noop:
END
GO

关于visual-studio-2012 - 触发器正在阻止数据库项目发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com