sql数据有修改或删除记录时会自动更新另外一个表

我A、B、C、D、E五个表。当A、B、C、D四个表中有任何一个表部分字段进行修改或记录进行删除时E表也同样进行自动更新。要用有没有详细操作步骤及过程。。A、B、C、D表里... 我A、B、C、D、E五个表。当A、B、C、D四个表中有任何一个表部分字段进行修改或记录进行删除时E表也同样进行自动更新。
要用有没有详细操作步骤及过程。。
A、B、C、D表里有ID,aa,bb,cc,dd,ee字段E表中有ID,aa,bb,cc,dd字段
要是用触发器应该怎么写。。修改或删除数据
展开
 我来答
wangzhiqing999
推荐于2016-02-20 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3235万
展开全部
下面的 SQL , 只是一个 大概的 结构的代码
创建一个 A 表的触发器
由于不知道哪个字段是主键

因此 部分代码段可能无法编译通过

CREATE TRIGGER TRIGGER_A
ON A
FOR INSERT, UPDATE, DELETE
AS
BEGIN

IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
BEGIN
-- 插入的操作
INSERT INTO E(aa,bb,cc,dd) SELECT aa,bb,cc,dd FROM inserted;
END;

IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
BEGIN
-- 更新的操作
DELETE FROM E WHERE (aa,bb,cc,dd) IN SELECT aa,bb,cc,dd FROM deleted;
INSERT INTO E(aa,bb,cc,dd) SELECT aa,bb,cc,dd FROM inserted;
END;

IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
BEGIN
-- 删除的操作.
DELETE FROM E WHERE (aa,bb,cc,dd) IN SELECT aa,bb,cc,dd FROM deleted;
END;

END
ERP小V
2010-10-15 · TA获得超过1256个赞
知道小有建树答主
回答量:1021
采纳率:82%
帮助的人:278万
展开全部
你可以用触发器啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ccc_sky
2010-10-15 · TA获得超过311个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:175万
展开全部
用触发器就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wdjhz
2010-10-15 · TA获得超过3529个赞
知道大有可为答主
回答量:2227
采纳率:41%
帮助的人:666万
展开全部
你这种情形,触发器是最好的选择..

触发器对于不同的数据库语法有些不同的,不知道你用的是什么数据库?

五个表各有哪些字段,需要如何触发更新?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leijun5220154
2010-10-15
知道答主
回答量:49
采纳率:0%
帮助的人:21.4万
展开全部
两种办法:
第一种:在你的程序中控制,在程序中通过逻辑来实现更新一个表的时候更新别的表来保证业务的完整性。
第二种:在你的数据库中完成,可以写存储过程或触发器来实现你要的同时更新操作,在程序中来调用存储过程,触发器的话不用在程序中调用,数据库会自动触发更新操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式