我有一个存储过程,它运行并插入10个单独的表中。在第一个表格中,我有一个“插入后”触发器。但是,存储过程包装在事务中,并且只有在插入到所有10个表中后才会提交。
我的问题是,只有存储过程提交后,我的触发器才会触发?目前我遇到的问题是通过asp.net应用程序插入记录很好,但触发器没有触发(触发器只捕获插入的行)
ALTER TRIGGER [dbo].[trProductAllergenUpdate]
ON [dbo].[ProductAllergen]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO AUDIT_PRODUCT (ProductID, Portal_Table, Portal_Column, AuditDescription, UpdateDateTime, OldValue, NewValue)
SELECT
I.ProductID, 'ProductAllergen', 'AllergenStatusID',
'Allergen - ' + AT.AllergenType, Getdate(),
AS2.AllergenStatus, AS1.AllergenStatus
FROM
Inserted I
INNER JOIN
(SELECT PA2.*
FROM ProductAllergen PA2
INNER JOIN
(SELECT
ProductID, AllergenTypeID, MAX(productAllergenID) [ProductAllergenID]
FROM ProductAllergen
WHERE isLive = 0
GROUP BY ProductID, AllergenTypeID) X ON PA2.ProductAllergenID = X.ProductAllergenID
) OLD ON OLD.ProductID = I.ProductID
AND OLD.AllergenTypeID = I.AllergenTypeID
INNER JOIN
ProductAllergen NEW ON NEW.ProductID = OLD.ProductID
AND NEW.AllergenTypeID = OLD.AllergenTypeID
INNER JOIN
AllergenType AT ON I.AllergenTypeID = AT.AllergenTypeID
INNER JOIN
AllergenStatus AS1 ON NEW.AllergenStatusID = AS1.AllergenStatusID
INNER JOIN
AllergenStatus AS2 ON OLD.AllergenStatusID = AS2.AllergenStatusID
WHERE
New.isLive = 1
AND OLD.AllergenStatusID <> NEW.AllergenStatusID
END