临时表有私人临时表(#),共用临时表(##)和在tempdb中明确地建立的(即不使用前缀#或##临时表
所有约束都可施加于在tempdb中明确地建立的临时表
除FOREN KEY约束外,其它所有约束都可用于带前缀#或##临时表因此,tempdb中明确地建立的临时表可以使用触发器

解决方案 »

  1.   

    在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中明确建立一个表还是可以的。这个表应以普通命名方式来做。我做了实验。
      

  2.   

    本人现在在编一个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分全部赠送(在我印象中还没有人出过那么高分呀!!!!!)谢谢各位
      

  3.   

    最佳解决之道:使用Stored Procedure 使数据改变放在一个事务中.
    编写,调用,管理都很方便
      

  4.   

    DOU我试一试如果,但看在740分的份上最好你写详细点
      

  5.   

    可以在TABLE中加字段来表示付款状态,而不用两个库
      

  6.   

    To:luxee
    你注册了多个帐户,并且做了...
    so ,我不想回答了,也不想要分了
      

  7.   

    根据推测,估计只有eee可以回答这个问题!
      

  8.   

    虽然你不再回答我的问题了,但跟据你的初步指导在Stored Procedure中的Transaction
    来进行管理,进在前台(C++Builder)的TStoredProc输入参数(单号和仓库ID),我的问题已经解决,谢谢!
    虽然你说不要我的分了,但这分数绝非是我的非法所得(我用我的人格担保)我的非法所得已要求坛主删除并且我已写了检讨保证不再重犯,分数请笑纳。