SQL中,如何在表A中插入或者更新一条数据的同时能将该数据更新到表B中去

我们设置一个具体问题,假设表A为科目表,有科目名,科目类型,授课老师,选修人数,表B为统计表,用来统计某些科目类型的选修人数,有科目类型,选修人数,如何设计触发器,在A表更新或者插入数据时,能更新B表中的数据。而且A表中的科目类型有可能B表中没有。

第1个回答  推荐于2018-04-11
create trigger TR_A_IU on A for INSERT, update as
BEGIN
DECLARE @kmlx NUMERIC(10), @xxrs NUMERIC(10)

SELECT @kmlx = 科目类型 FROM inserted
SELECT @xxrs = isnull(sum(选修人数), 0) FROM A WHERE 科目类型 = @kmlx
IF (SELECT count(1) FROM B WHERE 科目类型 = @kmlx) > 0
UPDATE B SET 选修人数 = @xxrs WHERE 科目类型 = @kmlx
ELSE
INSERT B (科目类型, 选修人数) SELECT @kmlx, @xxrs
IF @@ERROR <> 0 GOTO error
RETURN
error:
raiserror('写B表失败', 16, 1)
end
GO本回答被提问者采纳
第2个回答  2013-06-06
CREATE trigger [dbo].[Tr_Insert_Table]
on [dbo].[表A]
after insert
As
begin
insert into 表B(有科目类型,选修人数)
(
select 科目类型,1 from inserted
)
end本回答被网友采纳
第3个回答  2013-06-06
为A表创建Insert,Update类型的after触发器,然后在触发器中添加insert into b(,,,)values(,,,,);
相似回答