プロが教える店舗&オフィスのセキュリティ対策術

SQL Serverのトリガの中で、DMLの種類(INSERT/UPDATE/DELETE)を取る方法ってありますか?

こんにちは。アべです。

下記のようなトリガを作成して、操作(INSERT/UPDATE/DELETE)の履歴を
残したいのですが、トリガを3本に分けるのもあれなので、
操作の種類(INSERT/UPDATE/DELETE)を履歴用のテーブルに入れたいのですが、
書き方がわかりません。

取得方法のやり方を教えてもらえないでしょか?


CREATE TRIGGER [mst].[TriggerUserActionHistory]
ON [mst].[User]
AFTER INSERT, UPDATE, DELETE
NOT FOR REPLICATION
AS
BEGIN
SET NOCOUNT ON;
--ACTION TYPE未設定 ↓今はINSERT固定しかできない。
insert into [history].[User] select 'INSERT',getdate(),* from inserted;
END

GO

A 回答 (1件)

SQL Serverの場合、insertedとdeletedのデータ有無で判断するのが、一般的です。


両方あれば、UPDATEです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!