Sql server 而不是在更新表时触发INSERT触发器

Sql server 而不是在更新表时触发INSERT触发器,sql-server,triggers,Sql Server,Triggers,我有一个而不是Insert触发器,如下所示: ALTER TRIGGER [dbo].[trgBeforeInsertVehicleFeed] ON [dbo].[VehicleFeed] INSTEAD OF INSERT AS BEGIN SET NOCOUNT ON insert into VehicleFeed( FeedOrDealerId , Name , Vin

我有一个
而不是Insert
触发器,如下所示:

ALTER TRIGGER [dbo].[trgBeforeInsertVehicleFeed] ON [dbo].[VehicleFeed]
INSTEAD OF INSERT
AS
BEGIN

SET NOCOUNT ON

insert into VehicleFeed(
    FeedOrDealerId                  
    , Name                      
    , Vin                       
    , Stock                 
    , VehicleType           
    , StatusId              
    , IsManualEntry 
    , IsActive              
)
    select 
        I.FeedOrDealerId                
        , I.Name                    
        , I.Vin                 
        , I.Stock               
        , I.VehicleType 
        , I.StatusId            
        , I.IsManualEntry
        , I.IsActive
    from inserted I

    select distinct FeedOrDealerId from inserted

    Update VehicleFeed
    Set 
        IsActive= 0
        , StatusId = 11                     
    Where
        Stock Not In (select stock from inserted)
        And FeedOrDealerId = (select Distinct FeedOrDealerId from inserted)
        And IsManualEntry = (select Distinct IsManualEntry from inserted)
        And IsManualEntry = 0
END 
其中有两种说法。第一个是
insert
,另一个是
update


因此,此触发器在
insert
上正常工作。但问题是,在更新any记录时也会触发此触发器。当我更新任何记录时,其状态变为触发器中提到的11,此状态仅用于此触发器。

是否可以重新检查表VehicleFeed中是否存在任何其他触发器。或者检查更新表VehicleFeed的所有触发器中间的rogue
select
语句有什么问题?返回结果集的触发器往往会产生可怕的体验。“更新时也会触发此触发器”。几乎可以肯定,这一结论是错误的。不幸的是,你没有给我们足够的信息来诊断你是如何得出这个结论的,但这是错误的。