[已解决]100元求助SQL server执行批处理
本帖最后由 ryuenkyo 于 2019-3-5 14:49 编辑
有个社会问卷调查,想逻辑删除12个月以后文件,逻辑删除之后再过6个月物理删除 - 日期计算是系统日期,算出六个月前和一年前的日期,然后输出日志。
日志文件指定位置D:\survey\delete.log
1.逻辑删除的实施
在SURVEY_INFO 表中更新符合以下条件的数据
SELECT SURVEY_NO FROM SURVEY_INFO WHERE DEL_F_L_G != 1 AND UPDATE_DATE <= dateadd( YEAR,- 1, getdate());
更新逻辑删除
UPDATE SURVEY_INFO SET DEL_F_L_G = 1, DELETE_DATE = GETDATE(), DELETE_USERID = 'system', UPDATE_DATE = GETDATE(), UPDATE_USERID = 'system'
WHERE DEL_** != 1 AND UPDATE_DATE <= dateadd( YEAR,- 1, getdate());
2.物理删除的实施
从SURVEY_INFO 表检索物理删除对象问卷。
SELECT SURVEY_NO FROM SURVEY_INFO WHERE DEL_F_L_G = 1 AND DELETE_DATE <= dateadd( MONTH,- 6, getdate());
物理删除
DELETE FROM SURVEY_INFO WHERE DEL_F_L_G = 1 AND DELETE_DATE <= dateadd(MONTH,- 6, getdate());
3.将物理删除成功/失败的问卷记录文件输出到delete.log
稍微有点复杂,希望大神帮帮忙,谢谢 |