削除されたトランザクションを追跡するトリガーがあります。前後のトランザクション レコードの値を、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