Hi все,
I имеют proc магазина которое вызывает рекурсивное proc магазина которое в свою очередь могло вызвать несколько другими. Все уточняют по-разному таблицы etc в системе и всем старте с трудыами. Я имею блок задвижки попытки вокруг Кодего и свертываю назад на ошибках. Черепашка, котор я получал была….запрос ТРУДЫОВ ROLLBACK
The не имеет никакой соответствовать для того чтобы НАЧАТЬ TRANSACTION.
SO после того как читающ бит больше на трудыах, котор я теперь вижу что если rollback вызван на, котор гнездят трудыах, то он свертывает назад к другим трудыам. Когда я улавливаю ошибку я попытайтесь свернуть ее назад и бросить ошибку дальше к вызывая proc магазина. Вызывая процедура после этого пытается крен назад но никакие. Это я кажется, что понимаю и он теперь делает sense.
However (вопрос прежде чем я пробурю вас все), котор я дороги отрегулировать это и не знаю ли использовать Xact_state или @@trancount для того чтобы решить смотрел ли свернуть назад или not.
So в каждой задвижке я шел положить некоторое Кодего как. BEGIN TRY вещества som delcare proc stor
start…… НАЧИНАЕТ TRANSACTION … делает некоторое stuff ПОРУЧАЕТ TRANS END TRY BEGIN CATCH -- только сверните назад если это будет наружное tranaction ЕСЛИ (XACT_STATE () = -1) И, то (@@TranCount = ROLLBACK TRANS
1) -- построьте @errorMsg string ошибки ОТБОРНЫЕ = OBJECT_NAME (@@PROCID) + «: «+ брошено (XACT_STATE () как varchar (3)) +» -- @@TranCount =» + брошено (@@TranCount как varchar (3)) --бросьте proc
Do, котор магазина конца ЗАДВИЖКИ КОНЦА on RAISERROR ошибки (@errorMsg, @errorSev, @errorState)… мне нужно XACT_STATE или как раз использую @@Trancount. Также я заметил в debugger в SQL 2008 что если я одел в вахту перемеююый @@TranCount, то минута я вписал proc магазина, котор он идет после того как он инкрементирован и не когда я excuted заявление… Начните трудыы. Эти же когда я вызвал крен назад… им не декрементировали, только выходя proc магазина… все идеи или это как раз debugger или сервер SQL зная что он имеет трудыы, котор нужно начать так или иначе??
thanks M
class=
|