2011-05-14 30 views
0

我有了5列(ID,值,時間戳,上次更改時間,ModifiedBy)SQL服務器更新時間戳和OUTPUT

表我想創建一個具有下列操作的存儲過程。
1)更新值,如果時間戳匹配
2)返回新的時間戳,上次更改日期時間
3)如果時間戳不匹配的返回值,時間戳,上次更改時間和ModifiedBy

我知道我可以通過使用multile做到這一點我的存儲過程中的語句,但是這樣做可以在一個語句中使用OUTPUT子句執行它

例如
UPDATE 「表」 SET 「值」= 「新值」
OUPUT Inserted.Value,Inserted.TimeStamp,Inserted.LastModified,Inserted.ModifiedBy
WHERE 「ID」= 「ID」 和 「時間戳」=「時間戳「

只要更新發生,如果更新沒有發生,返回值都是空白,這很有效。

回答

0

一旦你叫你的更新的存儲過程,你可以通過檢查@@ ROWCOUNT變量來看看是否有任何行被實際更新

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