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

我们设置一个具体问题,假设表A为科目表,有科目名,科目类型,授课老师,选修人数,表B为统计表,用来统计某些科目类型的选修人数,有科目类型,选修人数,如何设计触发器,在A表... 我们设置一个具体问题,假设表A为科目表,有科目名,科目类型,授课老师,选修人数,表B为统计表,用来统计某些科目类型的选修人数,有科目类型,选修人数,如何设计触发器,在A表更新或者插入数据时,能更新B表中的数据。而且A表中的科目类型有可能B表中没有。 展开
 我来答
Richard2380
推荐于2018-04-11 · 超过12用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:32.4万
展开全部
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
女尔女子Rk
2013-06-06 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:24万
展开全部
CREATE trigger [dbo].[Tr_Insert_Table]
on [dbo].[表A]
after insert
As
begin
insert into 表B(有科目类型,选修人数)
(
select 科目类型,1 from inserted
)
end
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
firstdesktop
2013-06-06 · TA获得超过104个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:198万
展开全部
为A表创建Insert,Update类型的after触发器,然后在触发器中添加insert into b(,,,)values(,,,,);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式