2025年sqlserver 循环(sqlserver循环表)

sqlserver 循环(sqlserver循环表)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <blockquote> 

讯享网

🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注



讯享网

什么事多重级联路径

首先我们来了解一下什么事这个概念

引用,同时也引用,或者通过形成

假设我们有两个表:和

这样就形成了一个, 引用,同时 也引用

如果现在,如果我们尝试删除 中的一条记录,由于中可能有记录通过 引用这条记录,数据库会尝试这些 中的记录!

但是,当尝试删除中的这些记录时,由于它们通过 引用了 中的其他记录, 可能也是我们最初想要删除的那条记录的关联记录,也可能是其他记录,那么数据库会再次尝试这些 中的记录!

以此类推,这个过程可能会无限循环下去,导致数据库操作无法完成, 这就是的问题!

同样地,如果存在之间的复杂引用关系,也会形成,也可能导致类似的问题

就像是引用 , 引用,而 又通过某种方式直接或间接引用回 或其他表这样的逻辑关系!

所以这里给大家一个建议, 为了避免这种问题,我们平常开发中对上就需要这些和, 一定要先把数据的逻辑梳理 清楚!

那么如果在这种情况下,下就不允许设置了,之前我们所讲的级联删除可能就不管用了!

应用场景

比如说我们现在有两个表:和

多个员工都归属于一个部门,而每个部门都有一个经理,这个经理也是中的一个!

那么这个场景~就很明显了,双表都要建立关系!

这里就有一个问题:

如果我们想要删除一个部门,我们需要确保有些条件:

  1. 删除该部门下的所有员工, 因为员工归属于部门)
  2. 更新或删除作为该部门经理的员工记录因为经理是员工之一,但他们的特殊角色需要被处理!

然而,如果我们直接删除一个部门,并且该部门的经理仍然存在于中,我们可能不希望仅仅因为被就这个经理的员工, 相反,我们可能想要将他们的设置为来这样处理!

那么首先,我们先把数据表创建出来

讯享网

这里的解决办法就是先创建两个表,但不包括任何, 然后插入必要的测试数据,

最后再添加并且使用 来添加就可以了!

因为我们使用的是 版本比较老旧, 所以我们的创建方案如下:

现在可能已经有数据了, 我们需要确保这些数据中的 与我们想设置为经理的相匹配

那么修改之后,我们的创建代码如下:

 

然后我们适当的插入一些数据到 中

讯享网

然后先向添加 ,然后再添加

 


然后为 添加

讯享网

然后为添加

 

现在我们来看看这两个表的 看看是不是相互引用的情况!


此时,我们就建立了一种相互引用的关系!

现在我们再次添加两个部门

讯享网

然后手动修改一下中的员工所属部门

 

现在,我们的数据库中有了以下数据:

包含3个部门,每个部门都有一个经理!

包含5个员工,每个员工都归属于某一个部门,并且前三个员工是各部门的经理!

那么此时你去删除这两个表中的彼此关联数据就会报错了!

那现在万一我就是要呢?并且下面的员工都被删除!

解决方案 创建临时数据

比如现在我们在这两个表和 都创建一条临时的记录!

但是因为之前我们创建这两个表的时候,都创建了,那么现在插入我们想要的临时数据肯定是不行的, 我们所以我们要重新创建这两个表 在创建外键之前,就把这两个临时数据添加进去!

讯享网

同时我们手动更新一下,员工的所属部门

 

那么这一次,我们在这两个表里面就存有了临时数据了,然后我们执行一下查询看看创建的数据!

讯享网

修改指向到临时数据

那么我们现在要删除,那就要先把它下面的员工都删除!

但是下面的有些员工,也引用了部门表, 进行了双向关联!

现在我们来修改一下员工, 把它们的引用指向到一个临时数据上!~ 从而取消员工与部门的关联性!

然后再删除员工!

 


相当于现在把这两个员工移入到了

那如果我们现在来删除部门,你看看可以了吗?

讯享网

虽然部门被删除了 但是员工还在呀

你也不可能来直接删除这个临时员工的信息,因为此时这些员工又属于临时部门

 


这里我把这些员工的所属部门设置为

讯享网

最后再删除这些员工~~

 





大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

更多 的干货教程可以 点击下方关注❤️ 微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇


小讯
上一篇 2025-06-01 08:46
下一篇 2025-05-25 10:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/202374.html