我有一个触发器:
CREATE  TRIGGER TR_SD_ProdNote_M_IU
ON dbo.SD_ProdNote_M
FOR Insert, Update 
AS
BEGIN
  DECLARE @GUID uniqueidentifier
  IF Exists( 
    SELECT i.GUID 
FROM inserted i left join deleted d on i.GUID = d.GUID
WHERE IsNull(i.sIsPurchase,'N') = 'Y' and IsNull(d.sIsPurchase,'N') <> 'Y' )

  BEGIN
-- 对表PP_DyeNotice_D的插入操作还需要在SD_ProdNote_D的触发器中编写. 因为PP_DyeNotice_M的数据先于PP_DyeNotice_D插入.
IF Exists(SELECT b.GUID 
FROM inserted i inner join 
PP_DyeNotice_M b on i.GUID = b.SD_ProdNote_MGUID left join
deleted d on i.GUID = d.GUID 
WHERE sNoticeType = 'W'
and IsNull(i.sIsPurchase,'N') = 'Y' and IsNull(d.sIsPurchase,'N') <> 'Y')
    BEGIN        UPDATE PP_DyeNotice_M 
SET fOrderQuan = od.fStandQuan
FROM inserted i inner join 
   SD_Order_D od on i.SD_Order_DGUID = od.GUID left join
 deleted d on i.GUID = d.GUID 
WHERE i.GUID = PP_DyeNotice_M.SD_ProdNote_MGUID and PP_DyeNotice_M.sNoticeType = 'W'
and IsNull(i.sIsPurchase,'N') = 'Y' and IsNull(d.sIsPurchase,'N') <> 'Y'
    END
ELSE
BEGIN 
SET @GUID = newid()
    INSERT INTO PP_DyeNotice_M
(GUID, SD_ProdNote_MGUID, sNoticeNo, dProdDeliDate, sNoticeType, 
sProdSpec, fOrderQuan, fShrinkRate, sStatusID, dInputDate )
SELECT @GUID, i.GUID, 'CDN'+i.sProNoticeCode, i.dProdDeliDate, 'W', 
sSpecification, od.fStandQuan, IsNull(fWasteRate,0), 'N', getdate()
FROM inserted i inner join 
   SD_Order_D od on i.SD_Order_DGUID = od.GUID inner join 
 BD_Part bp on od.BD_PartGUID = bp.GUID left join 
 deleted d on i.GUID = d.GUID
WHERE IsNull(i.sIsPurchase,'N') = 'Y' and IsNull(d.sIsPurchase,'N') <> 'Y'
-- 插入PP_DyeNotice_D INSERT INTO PP_DyeNotice_D 
(GUID, PP_DyeNotice_MGUID, SD_ProdNote_DGUID, sItemNO, sCheckColor, fQuantity, sSaleOrderCode, sSaleOrderItem, 
sCustomerPO, sStyle, iSampleQuantity, dProdDeliDate, sStatusID, dInputDate, sRe)
SELECT newid(), @GUID, pd.GUID, pd.sItemNO, pd.sCheckColor, pd.fStandQuan, om.sSaleOrderNO, od.sItemNO,
pd.sCustomerPO, pd.sStyle, pd.fSampleQuantity, i.dProdDeliDate, 'N', getdate(), 'AutoInsert(外购成品布)'
FROM SD_ProdNote_D pd inner join
inserted i on pd.SD_ProdNote_MGUID = i.GUID inner join 
sd_order_d od on i.SD_Order_DGUID = od.guid inner join
sd_order_m om on od.SD_Order_MGUID = om.guid left join
deleted d on i.GUID = d.GUID
WHERE IsNull(i.sIsPurchase,'N') = 'Y' and IsNull(d.sIsPurchase,'N') <> 'Y'
    END  END我第一次保存的时候触发器就会有问题:只往PP_DyeNotice_M表写了数据,PP_DyeNotice_D的数据就是写不进去,非要再重新触发这个触发器,PP_DyeNotice_D才会写进数据。
是不是我红色部分出了问题?请大侠指教!谢谢!