怎样写这个触发器(急!)

wendaoshuangyue 2009-07-16 02:11:56
有两个表:
test1:id1,name1
test2:id2,name2
在往表test2插入一条数据的时候,我要判断新插入的这条数据的字段id2的值在表test1中是否存在,如果存在则将这条记录的name2的值修改为'new'+name2,如果不存在则不做任何变动。
请教各位大侠这个触发器该怎么写?急,在线等!我用的是sql server.
...全文
60 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwdream2008 2009-07-16
  • 打赏
  • 举报
回复
T-Mac is NO.1!
nandorin 2009-07-16
  • 打赏
  • 举报
回复
CREATE TRIGGER TRIGGER_TEST2_INS ON DBO.TEST2

FOR INSERT

AS

IF EXISTS(SELECT * FROM TEST2 WHERE IID IN (SELECT IID FROM TEST1) )

BEGIN

UPDATE A SET A.INAME='NEW'+B.INAME FROM TEST1 A,INSERTED B WHERE A.IID=B.IID

END
贾桂权 2009-07-16
  • 打赏
  • 举报
回复
不用写触发器。
insert test2(id2,name2)
select id2,case when exists(select 1 from test1 where id1=id2) then 'new'+name2 else name2 end
feixianxxx 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 feixianxxx 的回复:]
SQL codecreatetrigger kkon test2
afterinsertasbeginifexists(select*from insertedwhere id2in (select id1from test1))update test2set name2='new'+inserted.name2from insertedjoin test2on inserted.id1=test¡­
[/Quote]
修改 汗 。。

create trigger kk on test2
after insert
as
begin
if exists(select * from inserted where id2 in (select id1 from test1))
update test2
set name2='new'+inserted.name2
from inserted join test2 on inserted.id2=test2.id2
end
feixianxxx 2009-07-16
  • 打赏
  • 举报
回复
create trigger kk on test2
after insert
as
begin
if exists(select * from inserted where id2 in (select id1 from test1))
update test2
set name2='new'+inserted.name2
from inserted join test2 on inserted.id1=test2.id1
end
feixianxxx 2009-07-16
  • 打赏
  • 举报
回复
create trigger kk on test2
insert
as
begin
if exists(select * from inserted where id2 in (select id1 from test1))
update test2
set name2='new'+inserted.name2
from inserted join test2 on inserted.id1=test2.id1
end

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧