34,590
社区成员
发帖
与我相关
我的任务
分享
create trigger getid
on tb
for insert,update,delete
as
if exists(select 1 from inserted) --优先查找是否为插入或更新操作
select id from inserted
else --剩下删除操作
select id from deleted
--如果要把id插入到另一个表中,则用:
--insert into tb1 select id from inserted 或 deleted
go
create table tb(id int identity(1,1),col varchar(10))
go
create trigger getid
on tb
for insert,update,delete
as
if exists(select 1 from inserted)
select id from inserted
else
select id from deleted
go
insert into tb select 'aa'
insert into tb select 'bb'
update tb set col='cc' where id=2
delete tb where id=1
/*
id
-----------
1
(1 行受影响)
(1 行受影响)
id
-----------
2
(1 行受影响)
(1 行受影响)
id
-----------
2
(1 行受影响)
(1 行受影响)
id
-----------
1
(1 行受影响)
*/
go
drop table tb
CREATE TRIGGER triggerOper ON Test
FOR INSERT, UPDATE, DELETE
AS
begin
insert into aa(id)
select id from deleted
insert into aa(id)
select id from inserted
end
/*
update時會將舊的和新的都記錄下來,如果只需記錄舊的就用
if exists(select 1 from deleted)
begin
insert into aa(id)
select id from deleted
end
else
begin
insert into aa(id)
select id from inserted
end
*/