Insert or Update pattern

Ответить
Kogep
Сообщения: 9
Зарегистрирован: 20 июн 2013, 12:32

Insert or Update pattern

Сообщение Kogep »

1.

Код: Выделить всё

begin tran
if exists (select * from t with (updlock,serializable) where pk = @id)
   begin
   update t set hitCount = hitCount+1
   where pk = @id
end
else
begin
   insert t (pk, hitCount)
   values (@id, 1)
end
commit tran


2.

Код: Выделить всё

begin tran
   update t with (serializable)
   set hitCount = hitCount + 1
   where pk = @id
   if @@rowcount = 0
   begin
      insert t (pk, hitCount)
      values (@id,1)
   end
commit tran


https://samsaffron.com/blog/archive/2007/04/04/14.aspx
Ответить