我有一個觸發器,用於跟蹤已刪除的事務。它將前後交易記錄值存儲到名爲TransHistory的不同表中。問題是,當我刪除一條記錄時,它不僅存儲了已刪除的記錄,而且在此之前,它將存在於我的DataGridView中的最高記錄作爲更新插入到任何客戶中。這是我刪除觸發器:有問題的觸發器 - 刪除
USE [dbPB]
GO
/****** Object: Trigger [dbo].[delete_history] Script Date: 05/28/2013 19:40:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER On
GO
ALTER TRIGGER [dbo].[delete_history] ON [dbo].[Transaction]
FOR DELETE
AS
INSERT TransHistory (CustomerID, TransactionID, Buyin,
Cashout, CreditPaid, Type,
Date, action)
SELECT CustomerID, TransactionID, Buyin, Cashout,
CreditPaid, Type, GETDATE(), 'DELETED'
FROM deleted
,這裏是我的UPDATE觸發器:
USE [dbPB]
GO
/****** Object: Trigger [dbo].[update_history] Script Date: 05/28/2013 20:24:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[update_history] ON [dbo].[Transaction]
FOR UPDATE
AS
INSERT TransHistory (CustomerID, TransactionID, Buyin,
Cashout, CreditPaid, Type,
Date, action)
SELECT top (1) CustomerID,TransactionID, Buyin, Cashout, CreditPaid, Type,
GETDATE(), 'BEFORE UPDATE'
FROM deleted
INSERT TransHistory (CustomerID, TransactionID, Buyin, Cashout,
CreditPaid, Type,
Date, action)
SELECT top(1) CustomerID, TransactionID, Buyin, Cashout, CreditPaid, Type,
GETDATE(), 'AFTER UPDATE'
FROM inserted
您是否在刪除記錄時運行了分析器? –
我不確定...這是我的第一個觸發器 – alwaysVBNET
因此,當您執行「DELETE」時,兩個觸發器都會執行嗎? –