请教这个如何写?
有两个表
Create table a(
a1 varchar(50),
a2 varchar(50)
);
Create table b(
b1 varchar(50),
b2 int);
我想在表a中插入一条记录时,检查表b中b1字段的值,如果插入的值a1在表b中存在,则把表b的b2加一。如果不存在则在表b中插入一条记录,并将b2置1,这个如何实现呢?
问题点数:20、回复次数:6Top
1 楼softrookie(编程新生)回复于 2003-02-02 08:36:36 得分 0
用触发器Top
2 楼wzbstudy(小兵)回复于 2003-02-02 12:31:50 得分 0
我也这样想,但这个触发器如何写呢?
我这样写但不行
Create Trigger Tri_a on a
for insert
As
update b set b2=b2+1
where b1 in(select a1 from a)
这样写没有检查当前插入的值,只要b表中b1存在于a表中就会加1,如何改呢???
多谢Top
3 楼j9988(j9988)回复于 2003-02-02 12:35:49 得分 0
Create Trigger Tri_a on a
for insert
As
begin
update b set b2=b2+1 from inserted A where A.a1=b.b1
insert b select a1,1 from inserted where a1 not in (select v1 from b)
end
Top
4 楼j9988(j9988)回复于 2003-02-02 12:36:13 得分 10
Create Trigger Tri_a on a
for insert
As
begin
update b set b2=b2+1 from inserted A where A.a1=b.b1
insert b select a1,1 from inserted where a1 not in (select b1 from b)
end
Top
5 楼wuhuiai(无悔爱)回复于 2003-02-07 14:25:03 得分 5
Create Trigger Tri_a on a
for insert
As
begin
update b set b2=b2+1 from inserted A where A.a1=b.b1
insert b select a1,1 from inserted where a1 not in (select b1 from b)
end
Top
6 楼flyinger(风往北吹)回复于 2003-02-07 14:54:24 得分 5
create trigger fly
on a
after insert
-- 用After insert 更合适1
as
begin
update b set b2=b2+1 from inserted A where A.a1=b.b1
insert b select a1,1 form inserted where a1 not in (select b1 from b)
endTop




