削除前のトリガーを作成したいです。テーブルからレコードを削除すると、そのレコードは履歴テーブルに挿入される必要があります。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
削除直前のレコードを含む仮想テーブルです。
また、トリガーは削除ステートメントの暗黙的なトランザクションの一部として実行されるため、削除が失敗してロールバックすると、トリガーもロールバックされることに注意してください。