一个破问题,烦了俺几天,焦头烂额啊
继上次的问题,既然我的语句只是无法在触发器中运行,存储过程能够执行(本来想弄清为什么只在触发器中无法执行,现在不想弄清了),那么我想变通一下,在触发器中调用存储过程,这样就可以达到同样的效果,请教一下各位老师,是否存在弊端,或者根本无法实现,触发器调用存储过程语句要怎么写。

解决方案 »

  1.   


    create trigger trname on tb
    for update
    as
    begin
        exec get_aaa '','',''...
    end
    go
      

  2.   

    可以肯定的是,触发器中可以调用存储过程。不过,这样的触发起必然比较复杂,因为我们知道存储过程的参数往往是一些值,到目前都很难传入表值参数,而触发器的输入是inserted和deleted两个虚表。从搂主队触发器想很多天来看,你的问题用触发器+存储过程解决难度不小,写出来的触发器出问题的可能性太大,建议慎重
      

  3.   

    看了你的原贴建议:
    1、在本地加表
    2、本地加触发器,写入本地新加表
    3、加存储过程,实现将本地新加表数据更新到远程,并删除本地数据
    4、加作业,定时调用3建立的存储过程分开这四步后,1,4估计你自己可以很快搞定,2、3单独提出在CSDN应该也能较快搞定,你可以单独来提问。