none
事务复制执行update语句出现两次“一行受影响”?!? RRS feed

  • 问题

  • 具有可更新订阅的事务发布,部署在两台服务器上,一台发布一台订阅。
    在查询分析器里执行一条只影响一条数据的update语句,执行结果显示两次“1行受影响”
    删掉复制就正常了。
    这是怎么回事,能不能让语句只返回一次受影响行数。否则在程序里接收受影响行数时不好处理。

    如下图
    2011年1月18日 11:42

全部回复

  • Your sql version?
    2011年1月18日 15:04
  • sql 2005

    Microsoft SQL Server Management Studio      9.00.3042.00
    Microsoft Analysis Services 客户端工具      2005.090.3042.00
    Microsoft 数据访问组件 (MDAC)      2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
    Microsoft MSXML      2.6 3.0 5.0 6.0
    Microsoft Internet Explorer      7.0.5730.13
    Microsoft .NET Framework      2.0.50727.3615
    操作系统      5.2.3790

    2011年1月21日 11:51
  • peterpar1984,

    一条update语句在SQL底层执行的时候会被拆分成2个事务:delete + insert。

      --在写触发器的时候,对update操作就会有deleted和inserted这2个临时表供我们使用。

    或者你单独执行一个insert或delete操作,应该就只有一个事务"1行受影响"。

    不知道这个解释是否合理?

    谢谢。


    Thanks, Yoyo Yu
    2011年1月25日 6:28
  • Updating in replication shows single update command. How did you catch row count by the way? With @@rowcount?
    2011年1月25日 14:50