gpt4 book ai didi

插入触发器之前的 SQL Server 2008

转载 作者:行者123 更新时间:2023-12-04 21:09:34 25 4
gpt4 key购买 nike

我有以下查询:

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

关于插入触发器之前的 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com