【发布时间】:2010-03-20 13:22:00
【问题描述】:
我有一个表,其中定义了员工关系。 即
EmpID Name SeniorId
-----------------------
1 A NULL
2 B 1
3 C 1
4 D 3
等等……
Senior ID 是主键表与引用列 EmpId 相同的外键 我想清除该表中的所有行而不删除任何约束。我该怎么做?
需要这样删除 4、3、2、1
我该怎么做
编辑:
Jhonny 的答案对我有用,但哪个答案更有效。
【问题讨论】:
-
很明显,Jhonny's 是最有效和最好的答案,我将留下我的答案只是为了提醒一下,有时我并没有我想的那么聪明。
-
@Larry。根据它应该会降低效率,因为它会先更新所有行然后删除它们。而不是直接删除。哪个操作更有效,循环还是查询?请让我清楚。我不知道这个
-
两个基于集合的命令可能比在循环中运行大量基于集合的命令更快,即使后一种情况下的每个命令影响的行数较少。实际结果可能会因表中的索引或参考水平的数量而异;您必须进行测试以确保您拥有真正的最佳情况。但是 Jhonny 的“看起来”更好,而且肯定更清晰,更容易实现。
-
@Larry:感谢您的支持。谢谢解释。
标签: sql sql-server database tsql