在实际工作中经常在结算日要交完报表后才发现前面有单据出错了,然后反审核去修改的话又出现前后报表数据无法一致的情况。例如:截止上月30号结存数是1000,本月1-3号为汇总期,4号交报表。过两天又发现上月某日数据有误,如果反审单据再修改的话,上月结存数就不是1000了,这样导致本月报表期初数与上月已交报表结存数不一致。 为避免这种情况,只能在每月的4号设置本月1号(具体的日期)前的单据不能修改,但系统中已有的日期限制选项暂时还没有这样的功能。为实现此功能,一开始想到数据库的维护计划能定时修改相关数据就行,却发现只有SQL SERVER 2005版以上才有,我的2000版维护计划只有优化收缩功能。后来想到用操作系统的计划任务加数据库命令行操作的方法,具体设置如下: 1、先建立批处理文件date_lmt.bat,内容为: osql -S ttserver01 -U sa -P onlyit -d ttinv -i date_lmt.sql
(说明:-S 服务器 -U 用户名 -P 密码 -d 数据库 -i SQL命令文件)
2、再建立SQL命令文件(date_lmt.sql),内容为: update app_voucher_date_lmt set lmt_date=convert(varchar(8),getdate()-3,112) , lmt_type='A' where (voucher_type='GA') or (voucher_type='GB')