【问题标题】:SQL Server Update With TimeStamp and OUTPUT带有时间戳和输出的 SQL Server 更新
【发布时间】:2011-08-25 16:15:54
【问题描述】:

我有一个包含 5 列(ID、Value、TimeStamp、LastModified、ModifiedBy)的表

我想创建一个执行以下操作的存储过程。
1) 如果 TimeStamp 匹配,则更新值
2) 返回新的时间戳,LastModified 日期时间
3)如果TimeStamp不匹配返回Value,TimeStamp,LastModified和ModifiedBy

我知道我可以通过在我的存储过程中使用多条语句来做到这一点,但这是否可以使用 OUTPUT 子句在一个语句中做到这一点

例如
更新“表”SET“值”=“新值”
输出 Inserted.Value, Inserted.TimeStamp, Inserted.LastModified, Inserted.ModifiedBy
WHERE "ID" = "ID" AND "TimeStamp" = "TimeStamp"

只要更新发生,如果没有发生更新,则返回值全为空白,这很有效。

【问题讨论】:

    标签: sql-server timestamp


    【解决方案1】:

    调用更新存储过程后,您可以检查@@ROWCOUNT 变量以查看是否有任何行实际更新

    If @@ROWCOUNT <> 0
        -- Successful write
    ELSE
        -- Failed to update as the timestamp didn't match
    

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 1970-01-01
      • 2013-06-11
      • 2015-06-22
      • 2014-04-30
      • 2015-08-31
      • 2014-01-24
      • 2011-08-10
      相关资源
      最近更新 更多