SqlServerトリガーでデータのトレーサビリティテスト | 備忘録 (。・_・。)ノ

■テストデータ
追加
グループ B
メンバー 峰岸
修正
グループ 4
メンバー 峰岸
削除
グループ 4
メンバー 峰岸

TRIGGER 
 
 ■マスタ 定義
CREATE TABLE [dbo].[GroupMembers](
 [GroupCode] [nchar](10) NOT NULL,
 [MemberName] [nchar](10) NOT NULL,
 CONSTRAINT [PK_GroupMembers] PRIMARY KEY CLUSTERED
(
 [GroupCode] ASC,
 [MemberName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


■マスタ履歴 定義
CREATE TABLE [dbo].[GroupMembersLOG](
 [IUD] [nchar](10) NULL,
 [GroupCode] [nchar](10) NULL,
 [MemberName] [nchar](10) NULL
) ON [PRIMARY]


■トリガー定義
CREATE TRIGGER 追加トリガーサンプル ON GroupMembers
   AFTER INSERT
AS
BEGIN
INSERT INTO GroupMembersLOG SELECT '追加',* FROM deleted
INSERT INTO GroupMembersLOG SELECT '追加',* FROM inserted
END
GO


CREATE TRIGGER 更新トリガーサンプル ON GroupMembers
   AFTER UPDATE
AS
BEGIN
INSERT INTO GroupMembersLOG SELECT '更新',* FROM deleted
INSERT INTO GroupMembersLOG SELECT '更新',* FROM inserted
END
GO

CREATE TRIGGER 削除トリガーサンプル ON GroupMembers
   AFTER DELETE
AS
BEGIN
INSERT INTO GroupMembersLOG SELECT '削除',* FROM deleted
INSERT INTO GroupMembersLOG SELECT '削除',* FROM inserted
END
GO


■2012新機能
データ変更の追跡 (SQL Server)
http://msdn.microsoft.com/ja-jp/library/bb933994.aspx

SQL Server 2012 には、データベースのデータに対する変更を
追跡する変更データ キャプチャおよび変更の追跡という 2 つの機能が用意されています。