none
如何做到仅更新数据变动的列? RRS feed

  • 问题

  • 在SQL Server 中,在UPDATE触发器中,若列x1进行了更新(IF UPDATE(x1)),则更新其它表中的相关列

    在窗体中,保存时,CommadText用了类似这样的语句:UPDATE table SET x1 = @x1, x2 = @x2, x3 = @x3 WHERE (x1 = @Original_x1)

    运行时发现,即使x1没有改动,触发器IF UPDATE(x1)后的语句也会运行,就是说,x1也被认为更新了,这使得IF UPDATE(x1)失去了意义,每次更新时总会触发,从而大大影响了执行效率

    显然,根据每行数据动态构造CommadText中的Update命令是不现实的,那么,如何才能做到x1更新时触发,不更新时不触发呢?这在VFP中的远程视图是自动实现的,x1改动了,会触发,未改动,则不会触发,从而实现客户端与服务器行动协调一致

     

    2010年7月31日 23:57

答案

全部回复