62,046
社区成员
发帖
与我相关
我的任务
分享
------插入-----------
create trigger ti_Detail on Detail after insert
as
if @@rowcount=0 return
set nocount on
insert into Detail_bak(...)
select ...,newid(),getdate(),'insert' from inserted
set nocount off
------修改-----------
create trigger tu_Detail on Detail after update
as
if @@rowcount=0 return
set nocount on
insert into Detail_bak(...)
select ...,newid(),getdate(),'update' from inserted
set nocount off
------删除-----------
create trigger td_Detail on Detail after delete
as
if @@rowcount=0 return
set nocount on
insert into Detail_bak(...)
select ...,newid(),getdate(),'delete' from deleted
set nocount off
USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Person](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](30) NOT NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Person_Back](
[name] [varchar](30) NOT NULL,
[backid] [uniqueidentifier] NOT NULL,
[operatetype] [varchar](10) NOT NULL,
[operatetime] [datetime] NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Person_Back] ADD DEFAULT (newid()) FOR [backid]
GO
ALTER TABLE [dbo].[Person_Back] ADD DEFAULT (getdate()) FOR [operatetime]
GO
USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[person_update]
on [dbo].[Person]
after update
as
--记录到person_back中的是update前的值,如果要update后的name值可以使用from inserted
insert into person_back(name,operatetype)
select name,'update' from deleted
GO
USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[trigger_Person]
on [dbo].[Person]
after insert,delete
as
insert into person_back(name,operatetype)
select name,'delete' from deleted
insert into person_back(name,operatetype)
select name,'insert' from inserted
GO