批量删除数据库中的记录

时间:2013-11-21 23:09:35

标签: sql sql-server while-loop

我的数据库中有一个表,它只会在特定报表运行时删除记录,并且在这些期间可能会变得相当大。我正在为报告运行时实现批量删除。只是想对要走的路线有所了解。

While Exists (select top (1) StoreNbr from #Test WHERE DATEDIFF(dd, LogDate, GETDATE()) >= 60)
Begin
          delete top (5000) from #Test WHERE DATEDIFF(dd, LogDate, GETDATE()) >= 60
End 
  1. 我应该在循环中使用waitfor延迟,这有什么实际好处吗?
  2. 我应该在执行删除之前禁用表上的索引,并在完成后重新启用它们吗?

1 个答案:

答案 0 :(得分:0)

如何使用存储过程?我过去用过它。在存储过程中包含delete和select语句。使报告执行存储过程,报告将一步获取信息并删除记录。