金碟k3+SQL,触发器
BOS单“文具入库单”生成“外购入库单”“其他出库单”“虚仓入库单”为了保证“文具入库单”与三张工业单的数据完整性,我做了个触发器。如下:
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'twobills'
AND type = 'TR')
DROP TRIGGER twobills
GO
CREATE TRIGGER twobills
ON t_BOSWJRKEntry
FOR INSERT,UPDATE
AS
IF COLUMNS_UPDATED()=0xC8010000
Begin
update SE
set SE.FItemID = WJ.FMaterialCode,SE.FAuxQty = WJ.FFactAccQty,SE.Fauxprice = WJ.FPrice,SE.FAmount = WJ.FAmount
from inserted WJ inner join ICStockbillEntry SE on WJ.FID=SE.FSourceInterID and WJ.FIndex=SE.FSourceEntryID
print 'triggers are finished'
End
其中“0xC8010000”是通过以下触发器得到
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'tr_test'
AND type = 'TR')
DROP TRIGGER tr_test
GO
CREATE TRIGGER tr_test
ON t_BOSWJRKEntry
FOR INSERT,UPDATE
As
Begin
print COLUMNS_UPDATED()
end
这些完成之后,我在SQL查询分析器里可以达到我要的效果,即更新t_BOSWJRKEntry的指定的字段的值时,相关联的单据的对应 字段值也能相应更新。但是,我直接在金碟“文具入库单”单据体里更新字段值时,其它相关联的单据的对应字段值就没有反应了。