我有以下查询:
Insert into tblTest (ID, Name, Age) VALUES (1, 'TestName', 20);
在我的触发器中,我希望检查-如果查询的ID等于1,则发送另一个查询:
Insert into tblTest (ID, Name, Age) VALUES (2, 'TestName', 21);
否则,什么都不做。
问题是,我不知道如何保持参数不变,只改变年龄,因此基本上我想发送相同的查询,并更改某个参数(在这种情况下,它是年龄参数)。
我有以下查询:
Insert into tblTest (ID, Name, Age) VALUES (1, 'TestName', 20);
在我的触发器中,我希望检查-如果查询的ID等于1,则发送另一个查询:
Insert into tblTest (ID, Name, Age) VALUES (2, 'TestName', 21);
inserted
表中找到。以下是一个示例:if object_id('tblTest') is not null
drop table tblTest
create table tblTest (id int, name varchar(50), age int)
go
create trigger trg_tblTest_BeforeInsert
on tblTest
after insert
as begin
insert tblTest
select id + 1
, name
, age + 1
from inserted
where id = 1 -- Only for rows with id=1
end
go
insert tblTest (id, name, age) values (1, 'TestName', 20)
select * from dbo.tblTest
这将打印:
id name age
1 TestName 20
2 TestName 21