【问题标题】:INSTEAD OF INSERT trigger not firing for views - SQL ServerINSTEAD OF INSERT 触发器未触发视图 - SQL Server
【发布时间】:2018-01-30 01:34:04
【问题描述】:

我有这个触发器用于为每个插入填充另一个表的视图。问题是,它甚至不火。但是,将相同的代码应用于表(并修改 INSTEAD OF)时,它的效果非常好。

视图是vw_alumnos,从表Alumnos获取数据。

出于测试目的,我将行添加到Alumnos,它们在视图中正确显示。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[trgAfterInsert_pupils] 
ON [dbo].[vw_Alumnos]   
INSTEAD OF INSERT  
AS    
BEGIN
    IF @@ROWCOUNT = 0
        RETURN

    SET NOCOUNT ON

    declare @table_name varchar(50);  
    declare @id_row varchar(50); 
    declare @change_type varchar(100);  

    set @table_name='vw_Alumnos';  
    set @change_type='addedit';  

    insert into historial_cambios (table_name, id_row, change_type)
        select @table_name, i.EMAIL, @change_type 
        from inserted i
END

【问题讨论】:

    标签: sql sql-server view triggers


    【解决方案1】:

    好的...我找到了问题。

    此触发器检测何时将行添加到视图(而不是表!),这就是它不起作用的原因 -> 我正在通过将行添加到基表而不是视图来进行测试。

    【讨论】:

    • 我想你找到了治疗普通感冒的方法……整天都在寻找这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2015-01-23
    相关资源
    最近更新 更多