Aar*_*ieb 6 visual-studio-2012 sql-server-2012-datatools
我有一个Visual Studio 2012数据库项目,包含我的数据库模式.在部署后脚本中,我会自动创建许多触发器,负责记录对表数据的更改.
不幸的是,当我随后修改表并重新发布(在这种情况下,添加标识规范)时,我现在收到此错误:
此部署在执行期间可能会遇到错误,因为[dbo].[BenefitInfoVendor]的更改被[dbo].[tr_BenefitInfoVendor_Audit]在目标数据库中的依赖性阻止.
然后,发布拒绝继续创建发布预览...步骤.
如果我手动删除触发器,则发布成功.但是我不想记得每次从这里开始更新架构时手动执行此操作(或者将其传达给其他开发人员!).
我已经尝试在预部署脚本中删除所有触发器,但这不足以"很快"足以阻止此错误.
有没有办法在Visual Studio中抑制此错误,或以其他方式让它知道我将自己处理触发器?
在随后的项目中,我找到了一个似乎可以解决此问题的解决方案。我向每个表脚本添加一个存根,该存根创建一个与生成的触发器同名的最小触发器,但它不执行任何操作。
这是少量的额外输入,并且允许我保留我的触发逻辑。
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |