本人现在在编一个MIS项目,遇到了一个这样的问题:
有两个表的结构是完全相同的 TABLE和TABLE_HISTORY是用来记录单据的明细信息的(字段包括 种类;数量;金额;进仓名称 等等)
当一张单据付款之后相对应的明细记录就从TABLE移到了TABLE_HISTORY中,但入库的操作与付款的操作没有前后之分,也就是说入库操作有时会对TABLE进行操作而有时又会对TABLE_HISTORY进行操作。
我原来想建一个VIEW用UNION把TABLE和TABLE_HISTORY连接然后把INSERT INTO到一个临时表中,并为此临时表建一个TRIGGER使得对临时表的UPDATE操作都能反映到TABLE或TABLE_HISTORY中,但经大家的讨论和SQL SERVER BOOK ONLINE还有我的反复实验,现已明确肯定:Cannot create a trigger on a temporary object.
请问大家还有其它折冲的办法吗(不能直接在TEMPDB中建表,因为我要求每个进程的临时表都是唯一的)?
谁能给我一个明确的解决方案,我马上将740分全部赠送(在我印象中还没有人出过那么高分呀!!!!!)谢谢各位
在SQL SERVER BOOK ONLINE中有明确表示,对于在临时表,包括局部临时表和全局临时表不可以建立触发器。
“You cannot create a trigger on a view or on a temporary table, although triggers can reference views or temporary tables.”
但这里须知道临时表指的是以#和##开头临时表,如果在TEMPDB中明确建立一个表还是可以的。这个表应以普通命名方式来做。我做了实验。