使用TimeStamp和OUTPUT进行SQL Server更新

时间:2011-05-14 21:13:12

标签: sql-server timestamp

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

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

不匹配

我知道我可以通过在我的存储过程中使用multile语句来实现这一点,但是可以使用OUTPUT子句在一个语句中执行此操作

e.g。
UPDATE“table”SET“value”=“new value”
OUPUT Inserted.Value,Inserted.TimeStamp,Inserted.LastModified,Inserted.ModifiedBy
WHERE“ID”=“ID”和“TimeStamp”=“TimeStamp”

只要在没有发生更新的情况下更新发生,返回值全为空白,就可以正常工作。

1 个答案:

答案 0 :(得分:0)

调用更新sproc之后,可以检查@@ ROWCOUNT变量以查看是否有任何行实际更新

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