Hvis kaldene til SP1 efterfulgt af SP2 er atomare, skal de kombineres i T-SQL. Eller miste c#-transaktionen. Du forlænger transaktionen unødigt med rundrejser.
Og hvorfor have UPDLOCK på SP1UPDLOCK, men ikke til SP1? Jeg kan ikke se hvorfor. Hvis problemet er låsetips, skal du ikke bruge dem. Hvis noget kan serialiseres (hvorfor?), så lav det igen til et enkelt atomopkald
Bemærk, at standarden alligevel er LÆS KOMMITTET
Mener du endelig "semafor" ikke lås? Brug af sp_getapplock vil styre flowet gennem koden uden at bruge låse på dataene