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字段
要是用触发器应该怎么写。。修改或删除数据 展开
要用有没有详细操作步骤及过程。。
A、B、C、D表里有ID,aa,bb,cc,dd,ee字段E表中有ID,aa,bb,cc,dd字段
要是用触发器应该怎么写。。修改或删除数据 展开
6个回答
展开全部
下面的 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
创建一个 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
展开全部
你可以用触发器啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用触发器就可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这种情形,触发器是最好的选择..
触发器对于不同的数据库语法有些不同的,不知道你用的是什么数据库?
五个表各有哪些字段,需要如何触发更新?
触发器对于不同的数据库语法有些不同的,不知道你用的是什么数据库?
五个表各有哪些字段,需要如何触发更新?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种办法:
第一种:在你的程序中控制,在程序中通过逻辑来实现更新一个表的时候更新别的表来保证业务的完整性。
第二种:在你的数据库中完成,可以写存储过程或触发器来实现你要的同时更新操作,在程序中来调用存储过程,触发器的话不用在程序中调用,数据库会自动触发更新操作。
第一种:在你的程序中控制,在程序中通过逻辑来实现更新一个表的时候更新别的表来保证业务的完整性。
第二种:在你的数据库中完成,可以写存储过程或触发器来实现你要的同时更新操作,在程序中来调用存储过程,触发器的话不用在程序中调用,数据库会自动触发更新操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |