SQL数据库怎么进行多表级联更新,求个存储过程

SQL数据库怎么进行多表级联更新,求个存储过程,第1张

方法、过程如下:

在每个数据库的table1\table2都建立插入、删除、修改触发器

如在A1上

ceate trigger dbotable1_u on A1dbotable1 for insert,update,delete as

IF @@rowcount = 0 RETURN

declare @no_i int -- 假设no为关键字

--declare 其他字段

declare @no_d int -- 假设no为关键字

--declare 其他字段

--赋值

select @no_i =no ,--其他值

from inserted

select @no_d =no ,--其他值

from deleted

--判断@no_d,@no_i 是否在A2,A3,A4,A5的表中存在

--1、如果@no_d,@no_i 都存在,则用新值更新A2,A3,A4,A5的talbe1

--2、如果@no_d不存在@no_i存在,则将新值插入A2,A3,A4,A5的talbe1

--3、如果@no_d存在@no_i不存在,则删除A2,A3,A4,A5的talbe1对应的值

if exists(select 1 from A2dbotalbe1 where no = @no_d) and

exists(select 1 from A2dbotalbe1 where no = @no_i)

begin

--修改A2数据库的表

end

按照你现在这两个表的设计来看,最简单的改法就是,把SmallClassID表中的BigClassName和EnBigClassName这两个字段去掉,换成BigClassID这个字段,存放它上级目录的ID,设置成外键字段,指向BigClass表中的主键。

然后你在代码里面生成目录的时候,先生成一级目录,例如:

Select from BigClass

这样就可以把一级节点都生成,然后再对每个一级节点生成其下级节点,比个给产品分类这个节点生成下级节点,可以用:

Select from SmallClass where BigClassID = 46(即取当前节点对应的ID)

这样就可以查到它的子节点了。

这个是对你改动最小的,但是最好的实现方法是只用一张表去实现,设置一个ParentID的字段,存储其父节点的ID,也就是一个指向自己这张表的外键,然后用递归算法去生成目录,这样就比较灵活,不管有几级的目录都可以。

以上就是关于SQL数据库怎么进行多表级联更新,求个存储过程全部的内容,包括:SQL数据库怎么进行多表级联更新,求个存储过程、数据库级联二级目录怎么实现、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9877700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存