sql触发器(从两个表中读取数据),但不用视图

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:41:15
表A:a,b,c 三个字段
表B:a,d 两个字段
表C:a,d,b,c 四个字段
当表A中插入一条记录时,执行触发器,从表A和表B中读取字段,存入表C,怎么写 啊这个触发器??
表B中:a字段和b字段是一对多的关系
也就是说当表A中插入一条记录时,应该往表C 中插入多条记录
这该怎么插 啊??
当表A 中的字段c更新时,表C中的字段也更新,怎么写啊?

CREATE TRIGGER TRIGGERA ON 表A FOR INSERT AS
DECLARE @A INT,@B VARCHAR(10),@C FLOAT
SELECT @A=A,@B=B,@C=C FROM INSERTED
INSERT INTO C SELECT A=@A,B=@B,C=@C,D FROM 表B WHERE A=@A
======
别人帮助您只是点到为止,编程是要自已动点脑筋的。
该触发器,您多少条记录都能插入,这要看数据,在表B中有多少个等于表A中A字段的记录,就会插入多少条,这有什么问题吗?
会插入记录了,更新记录还要再讲吗?
好吧,算我今天心情好,再给您写一个更新触发器:
CREATE TRIGGER TRIGGERA ON 表A FOR UPDATE AS
DECLARE @A INT,@B VARCHAR(10),@C FLOAT
SELECT @A=A,@B=B,@C=C FROM INSERTED
UPDATE 表C SET C=@C WHERE A=@A,B=@B
GO

create trigger tg_a_insert
on a
for insert
as
insert into C(a,d,b,c)
select inserted.a,a.d,inserted.b,inserted.c
from inserted,b
where inserted.a=b.a