首页 > 解决方案 > 使用 IF 条件截断表

问题描述

嗨,如果数据是 35 天前,我想截断表有没有办法把如果使用截断命令表名 Employee 我想在输出下面

truncate table employee if datediff(day,record_date,getdate()) >35 

标签: sqlsql-server

解决方案


听起来您想删除记录,而不是截断表:

delete from employee
    where record_date < dateadd(day, -35, convert(date, getdate()));

注意:如果表是一个大表,那么您可能需要考虑使用分区存储数据。这允许您删除分区,这通常比删除大量记录要快得多。


推荐阅读