データベース レベルのアプリケーションでは、スキーマ Billing および Billing_History に Installments というテーブルがあります。
表示されているトリガーは、課金スキーマの分割払いテーブルにあります。
これが行うことは、課金スキーマでレコードが挿入/更新されるたびに、履歴ファイルにも書き込まれます。
レコードが課金テーブルから削除されると、「削除済み」インジケータ = true で履歴テーブルに書き込まれます。
「If Not Exists (Select * from Inserted) は、レコードが追加されるにつれてパフォーマンスを低下させていると思います。
このトリガーを作成するより効率的な方法はありますか?
Create TRIGGER [Billing].[Installments_InsertDeleteUpdate_History]
ON [Billing].[Installments]
AFTER INSERT, DELETE, UPDATE
AS BEGIN
Insert Into Billing_History.Installments
Select *, GetDate(), 0 From Inserted
If Not Exists (Select * From Inserted)
Insert Into Billing_History.Installments
Select *, GetDate(), 1 From Deleted
SET NOCOUNT ON;
-- Insert statements for trigger here
終わり