Я получаю сообщение об ошибке:Где находится несоответствие Begin/Commit в этой хранимой процедуре?
Счет транзакции после EXECUTE указывает на несоответствующее количество операторов BEGIN и COMMIT. Предыдущее количество = 0, текущее значение счетчика = 1.
Когда я пытаюсь выполнить эту хранимую процедуру:
create procedure [dbo].[SynchCustomerSubscriptions] (
@subscriptions Subscriptions readonly)
as
begin transaction
begin tran SynchTransaction
begin try
delete s
from Subscription s (nolock)
where s.Customer in (
select Customer
from @subscriptions)
exec AddSubscriptions
@subscriptions
end try
begin catch
rollback tran SynchTransaction
return
end catch
commit tran SynchTransaction
Кто-нибудь запятнать проблему?
Почему имея вложенную транзакцию внутри другого, и совершение/только один отката на предыдущую версию? Я имею в виду, что когда вы совершаете фиксацию, вы фиксируете «SynchTransaction», а когда вы откатываете, вы откатываете «SynchTransaction», но одна транзакция по-прежнему остается неназванной! Просто любопытно узнать и чему-то научиться. =) –