Предполагая, что по крайней мере SQL Server 2005 вы можете использовать OUTPUT
UPDATE XY
SET Col = 'foo'
OUTPUT inserted.recordTimeStamp
WHERE ((Id = @Id) AND (recordTimeStamp = @recordTimestamp))
Или версия, которая использует переменную таблицы для более точного отражения поведения исходного запроса.
DECLARE @Timestamp TABLE(stamp binary(8))
UPDATE XY
SET col='foo'
OUTPUT inserted.recordTimeStamp INTO @Timestamp
WHERE (Id = @Id) AND (recordTimeStamp = @recordTimestamp)
if @@rowcount = 0
begin
RAISERROR ('this row was changed by another user', 18, 1)
end
SELECT stamp
FROM @Timestamp