SQL Server で削除前トリガーを作成するにはどうすればいいですか? 質問する

SQL Server で削除前トリガーを作成するにはどうすればいいですか? 質問する

削除前のトリガーを作成したいです。テーブルからレコードを削除すると、そのレコードは履歴テーブルに挿入される必要があります。SQL Server でこれを実行するにはどうすればよいですか?

ベストアンサー1

このような状況では、通常の「後」トリガーを実行する方がよいでしょう。これは、この種の状況に対する最も一般的なアプローチです。

何かのようなもの

CREATE TRIGGER TRG_AUD_DEL
ON yourTable
FOR DELETE
AS
     INSERT INTO my_audit_table  (col1, col2, ...)
     SELECT col1, col2...
     FROM DELETED 

my_audit_tableテーブルからレコード (または複数のレコード!) が削除されると、削除された行がテーブルに挿入されます。テーブルは、DELETED削除直前のレコードを含む仮想テーブルです。

また、トリガーは削除ステートメントの暗黙的なトランザクションの一部として実行されるため、削除が失敗してロールバックすると、トリガーもロールバックされることに注意してください。

おすすめ記事