当前位置:网站首页 > SQL数据库编程 > 正文

sqlserver 循环(sqlserver循环表)



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


什么事多重级联路径

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

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

假设我们有两个表:和

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

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

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

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

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

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

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

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

应用场景

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

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

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

这里就有一个问题:

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

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

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

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

 
  

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

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

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

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

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

 
  

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

 
  

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

 
  


然后为 添加

 
  

然后为添加

 
  

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


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

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

 
  

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

 
  

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

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

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

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

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

解决方案 创建临时数据

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

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

 
  

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

 
  

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

 
  

修改指向到临时数据

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

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

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

然后再删除员工!

 
  


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

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

 
  

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

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

 
  


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

 
  

最后再删除这些员工~~

 
  




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

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

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

到此这篇sqlserver 循环(sqlserver循环表)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • mysql主键自增的好处(mysql主键自增原理)2026-03-03 13:45:09
  • pyspark读取mysql(spark 读取mysql)2026-03-03 13:45:09
  • plsql12注册码(plsqldeveloper12注册码)2026-03-03 13:45:09
  • mysql主键设计原则(mysql主键原理)2026-03-03 13:45:09
  • sqlldr 导入(sqlldr 导入日期)2026-03-03 13:45:09
  • sqlserver 循环语句(sqlserverfor循环)2026-03-03 13:45:09
  • Pymysql 连接池(pymysql连接sql server)2026-03-03 13:45:09
  • sql数据库基础知识(sql数据库基础知识笔试题)2026-03-03 13:45:09
  • sql文件导入数据库报错(sql导入数据错误)2026-03-03 13:45:09
  • 使用pymysql连接数据库(pymysql连接数据库失败)2026-03-03 13:45:09
  • 全屏图片