SQL Query删除两年以上的记录

Gar*_*mas 9 sql

我需要通过从多个表中删除超过两年的记录来清理非常臃肿的SQL数据库.这样做最有效的方法是什么?

Ada*_*son 15

你有什么方法可以确定记录的"旧"程度吗?(即,表中是否有一列表示行的年龄或可用于计算年龄的日期?).如果是这样,那应该很简单

DELETE FROM Table WHERE Age > 2
Run Code Online (Sandbox Code Playgroud)

例如,如果您有一个DateTime名为的列CreateDate,则可以执行以下操作:

DELETE FROM Table WHERE DATEADD(year, 2, CreateDate) < getdate()
Run Code Online (Sandbox Code Playgroud)

  • 虽然在锁定方面可能非常讨厌. (2认同)
  • 将删除分成批处理可能更适合并发. (2认同)