最近、私は新しいASP Webアプリケーションを継承しました。このアプリケーションでは、顧客が未払いの請求書をオンラインで支払うだけで済みます。アプリケーションの設計が不十分で、支払い履歴テーブルがありませんでした。支払いテーブル全体が、支払いレコードを記録の会計システムに転送するWebサービスによって削除されました。
PaymentsテーブルにデータをPayment_Logテーブルにコピーするだけの単純なトリガーを作成しました。最初は、トリガーはデータをコピーするために挿入時にselect*を実行しました。ただし、顧客の1人がデバッグする必要のある問題を抱えているため、トリガーを変更して支払いの日付をPayment_Logテーブルに挿入しました。新しいトリガーは以下のとおりです。私の質問は、この新しいバージョンのトリガーでは、行がテーブルの中央に挿入されていることに気付いたということです(つまり、最後ではありません)。誰かがこれが起こっている理由を説明できますか?
ALTER trigger [dbo].[PaymentHistory] on [dbo].[Payments]
for insert as
Declare @InvoiceNo nvarchar(255),
@CustomerName nvarchar(255),
@PaymentAmount float,
@PaymentRefNumber nvarchar(255),
@BulkPaid bit,
@PaymentType nvarchar(255),
@PaymentDate datetime
Select @InvoiceNo = InvoiceNo,
@CustomerName = CustomerName,
@PaymentAmount = PaymentAmount,
@PaymentRefNumber = PaymentRefNumber,
@BulkPaid = BulkPaid,
@PaymentType = PaymentType
from inserted
Set @PaymentDate = GETDATE()
Insert into Payment_Log
values (@InvoiceNo, @CustomerName, @PaymentAmount, @PaymentRefNumber, @BulkPaid, @PaymentType, @PaymentDate)
以下は、テーブルデータの中央に挿入されている行を示すSQL ServerManagementStudioのスクリーンショットです。助けてくれてありがとう。