create table TriggerA
(
Id int identity(1,1) primary key, --主鍵Id
Name varchar(200),
);
insert into TriggerA(Name) values('ABC');
create table TriggerB
(
Id int identity(1,1) primary key,
Value varchar(200),
Remark varchar(50),
);
create trigger tigger_A_UPDATE
on TriggerA
for update
as
if update(Name)
begin
declare @oldValue nvarchar(200) --修改之前的
declare @newValue varchar(200) --修改之后的
select @newValue= i.Name from inserted i --从更新后的副本表(临时表)里面 获得要修改后的状态
select @oldValue=d.Name from deleted d --从之前删掉的临时表里面获取原来的值
if (len(@oldValue)>0 and len(@newValue)>0)
begin
insert into TriggerB(Value,Remark) values(@newValue,'修改')
end
else if(len(@oldValue)>0 and len(@newValue)!>0)
begin
insert into TriggerB(Value,Remark) values(@oldValue,'刪除')
end
else
begin
insert into TriggerB(Value,Remark) values(@newValue,'添加')
end
end
SQL Server 触发器
最新推荐文章于 2024-08-16 17:35:07 发布