我有兩個觸發器插入或更新後,而不是插入。看來after trigger沒有運行或發送正確的數據。插入後,更新觸發器沒有運行
我已經驗證Z_UpdateStageTable存儲過程的正確操作,而是插入的觸發。刪除而不是插入觸發器沒有任何影響。插入後,更新觸發器一次正常工作,我沒有做任何更改。我試圖刪除它並添加它,但它仍然不運行或具有正確的數據。
任何想法?
而是插入的:
ALTER TRIGGER [DeleteExistingFilter]
ON [dbo].[Z_MobileSyncFilters]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM Z_MobileSyncFilters WHERE UserID = (SELECT UserID FROM INSERTED);
INSERT INTO Z_MobileSyncFilters
SELECT *
FROM INSERTED;
END
後插入,更新:
TRIGGER [UpdateStageTable]
ON [dbo].[Z_MobileSyncFilters]
AFTER INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AllWos AS VARCHAR(5000);
DECLARE @PmWos AS VARCHAR(5000);
DECLARE @RepWos AS VARCHAR(5000);
SET @AllWos = (SELECT AllWos FROM INSERTED);
SET @RepWos = (SELECT AllWos FROM INSERTED);
SET @PmWos = (SELECT AllWos FROM INSERTED);
EXEC Z_UpdateStageTable @AllWos;
EXEC Z_UpdateStageTable @RepWos;
EXEC Z_UpdateStageTable @PmWos;
END
的應用程序(不是我)有新的數據每次連接時間。不幸的是,該應用程序不夠智能執行更新,因此它試圖在連接時進行插入。沒有刪除它只能在第一次使用。 – NitroxDM 2009-02-24 19:11:13
丹尼斯是正確的第二個觸發器是不正確的,如果多行插入發生,將無法正常工作。永遠不要只依靠在觸發器中插入/更新/刪除一行。 – HLGEM 2009-02-24 19:42:55