【问题标题】:Which row is updated first?哪一行最先更新?
【发布时间】:2014-03-28 17:59:17
【问题描述】:

我在 MSSQL 中通过UPDATE 语句更新了更多行。我想知道哪一行是第一个更新的。


详情:

我在使用其他人编写的触发器时遇到问题。它不会持续一排。触发器由 UPDATE 触发到所有行(~30k),不包括之前已经成功更新的行。有问题的行现在是下一个应该更新的行。我需要以某种方式找到该行。有什么办法吗?

我已经阅读了几篇关于如何用 ORDER BY 模仿 UPDATE 的帖子,但它对我不起作用。

【问题讨论】:

    标签: sql sql-server sql-update sql-order-by


    【解决方案1】:

    SQL 是一种固定语言。没有“第一个”、“上一个”或“下一个”的概念。所有行同时更新。

    【讨论】:

    • 它似乎是同时完成的。它应该是。但是,这在物理上是不可能的。触发器提供一个 Web 服务,该服务将数据保存到另一个系统。一会儿所有的数据都不会出现在第二个系统中。其他系统中的行数逐渐增加。我不得不等待错误的行很长时间才能转弯。现在,它是下一个去的地方。但是由于概念如您所说;这可能不是正确的方法。
    • “触发器提供网络服务”之后的所有内容都是静音的。来自触发器的 Web 服务调用绝对是一个更糟糕的错误。效率低下(将减慢操作,因为它们必须等待缓慢的 HTTP 响应),内置高不可用性(HTTP 失败导致 DML 失败),最重要的是,不正确(回滚可能在触发后 长时间 发生已完成,但无法撤消 HTTP 调用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    相关资源
    最近更新 更多