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的所有触发器中间的rogueselect
语句有什么问题?返回结果集的触发器往往会产生可怕的体验。“更新时也会触发此触发器”。几乎可以肯定,这一结论是错误的。不幸的是,你没有给我们足够的信息来诊断你是如何得出这个结论的,但这是错误的。