sqlトリガー使用例

1338 ワード

inserted、deletedはフリップフロップで使用される二つの一時テーブルであり、insert操作を実行するとinsertedに現在挿入されている記録が格納されています。delete操作を実行すると、Deletedに現在削除されている記録が格納されています。udateを実行すると、insertedに修正後の記録が格納されています。deletedには修正前の記録が格納されています。
 
  
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER TRIGGER [dnt_user_add]
ON [dbo].[dnt_users]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
insert into [dnt_userfields](uid)
select uid from inserted

END
削除:
 
  
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [dnt_users_del]
ON [dnt_users]
AFTER DELETE
AS
BEGIN

SET NOCOUNT ON;
delete [dnt_userfields] from deleted where [dnt_userfields].uid=deleted.uid

END
GO
変更:
 
  
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dnt_users_up]
ON [dnt_users]
AFTER UPDATE
AS
BEGIN

SET NOCOUNT ON;
UPDATE [dnt_userfields] Set icq = inserted.uid from inserted where [dnt_userfields].uid = inserted.uid

END
GO