如何从包含自引用外键的表中删除所有数据

Sha*_*pta 8 sql t-sql database sql-server

我有一张表,其内部定义了员工关系.即

EmpID   Name  SeniorId
-----------------------
1         A      NULL
2         B       1
3         C       1
4         D       3
Run Code Online (Sandbox Code Playgroud)

等等...

其中,高级ID是一个外键,其主键表与引用列EmpId相同,我希望清除此表中的所有行而不删除任何约束.我怎样才能做到这一点?

删除需要像这样的4,3,2,1执行

我怎样才能做到这一点

编辑:

Jhonny的答案对我有用,但哪个答案更有效率.

Jho*_*re- 17

我不知道我是否遗漏了什么,但也许你可以尝试一下.

UPDATE employee SET SeniorID = NULL
DELETE FROM employee
Run Code Online (Sandbox Code Playgroud)

  • 是的,日复一日,我越来越接近这样的想法:在思考我们自己之前,我们会在网络上搜索以查看其他人的思考结果......顺便说一下,这是一个很好的答案:D (3认同)
  • 呵呵。把事情简单化!:-) (2认同)
  • 我觉得这个答案是一些深刻的人生教训:) (2认同)