--==首先提醒大家先备份数据库,如果不懂SQL的朋友还请不要轻易尝试。==--
--=========================================================--
--=====================真正彻底删除红字单据====================--
--=========================================================--
QFBJ软件中在做删除的时候并未真正删除数据库表的记录,只是做了删除标记。
以往使用的清除红字单据的方法
delete from billindex where redword=1 --清除了经营历程(红字单的表头)
update billindex set ifcheck='f' where redword='1' --隐藏了经营历程(红字单的表头)
为了节约资源,我还是喜欢将无用的记录彻底删除。
--=========================================================--
--1----删除红字单据的销售单明细----------
Delete SaleBill
From SaleBill,billindex
where SaleBill.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--2----删除红字单据的出入库记录明细------
Delete InOutstocktable
From InOutstocktable,billindex
where InOutstocktable.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--3-----删除红字单据的收款单明细-----
Delete From gatheringBill
From gatheringBill,billindex
where gatheringBill.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--4-----删除红字单据的付款单明细-----
Delete From PayBill
From PayBill,billindex
where PayBill.billnumberId = billindex.billnumberId
and billindex.redword = '1'
--5----删除经营历程红字单据表头----------
Delete from billindex where redword=1 -- 注意这句需要最后执行,如果你以前执行过这一句那么前面的就不起作用了,还有办法,呵呵~请往下看~
--=========================================================--
以上5步共删除了五个表的销售、出入库以及收付款记录和表头,可以直接复制到查询分析器执行。
如果只执行1和4,则在经营历程中还能看到红字单据,双击(察看凭证),单据是空白的。
5是删除了经营历程中的红字单据。执行完这5步就彻底消失了。
--=========================================================--
如果你曾经只是执行过第5个语句,还想删除其他两个表的记录的话,可以用下面这个。
下面这4句可以完全替代上面的 1 - 4,也可以用这两句来删除。
--------删除红字单据的销售单明细---------
Delete From SaleBill
where SaleBill.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--------删除红字单据的出入库记录明细-----
Delete From InOutstocktable
where InOutstocktable.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--------删除红字单据的收款单明细-----
Delete From gatheringBill
where gatheringBill.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--------删除红字单据的付款单明细-----
Delete From PayBill
where PayBill.billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
--=====================我是蓝色的分隔线======================--
如果你的业务不止这些,用到的QFBJ的 功能较多,甚至全部。那么要删除就比较多了...我不一一写了,可以用这个,自己替换表名
--------删除各个表中红字单据的明细记录--------
Delete From 表名
Where billnumberId
Not in (select billnumberId from billindex where billindex.redword <> '1')
Delete from billindex where redword=1
删除完各个单据后别忘了把表头也删了
(只要在删除完所有需要删除的表明细后,执行一次这句就可以了,不用每次都执行这句)
--=========================================================--