więc mam procedura przechowywana (SQL Server 2008 R2) coś takiegojest serwer sql transakcja atomowa
BEGIN TRAN
BEGIN TRY
//critical section
select value
update value
//end of critical section
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
Chcę ma dwóch procedur przechowywanych czytać tę samą wartość. Innymi słowy, odczyt i aktualizacja powinny być atomowe. Ten kod to robi? Jeśli nie, to jak to zrobić?
Czy możesz podać więcej szczegółów na temat konkretnego przypadku? Jest to bardzo ogólne pytanie i mogą już istnieć dobre wzorce dla tego, co próbujesz zrobić. –
cóż, ta sama procedura jest nazywana ~ jednocześnie i każda musi uzyskać unikalny licznik (to znaczy odczytuje licznik i zwiększa go). I licznik musi być stopniowo zwiększany (brak wartości losowych). – ren
Możesz zwiększyć licznik w pojedynczym komunikacie aktualizacyjnym, który nie wymaga osobnego odczytu. 'UPDATE Foo SET counter = counter + @ increment', ale może nie rozumiem, co próbujesz zrobić. –