删除表和截断表之间的区别?

新手上路,请多包涵

我有一些表是我构建的报告汇总的一部分。之后我根本不需要它们。有人提到要截断它们,因为它会更快。

原文由 Brian G 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

从表中删除记录会记录每次删除并为删除的记录执行删除触发器。截断是一个更强大的命令,它可以清空表而不记录每一行。 SQL Server 会阻止您截断带有引用它的外键的表,因为需要检查每一行的外键。

截断通常是超快的,非常适合从临时表中清除数据。它确实保留了表的结构以供将来使用。

如果您确实要删除表 定义 以及数据,只需删除表即可。

有关详细信息,请参阅 此 MSDN 文章

原文由 JoshL 发布,翻译遵循 CC BY-SA 2.5 许可协议

删除 整个表及其所有结构

truncate delete all rows from table 它与 delete 不同的是它还删除行的索引

原文由 ZIA 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进