Questione : Xact_state o @@ TranCount per trattare le riduzioni dei prezzi di transazione del nido

Ciao tutti, il

I hanno un proc del deposito che denomina un proc ricorsivo del deposito che a loro volta potrebbe denominare alcuni altri. Tutti stanno aggiornando le tabelle differenti ecc nel sistema ed in tutto l'inizio con una transazione. Ho un blocchetto del fermo di prova intorno al codice e rotolo indietro sugli errori.  L'insetto che stavo ottenendo era….la richiesta di TRANSAZIONE di RIDUZIONE DEI PREZZI del

The non ha corrispondenza PER COMINCIARE TRANSACTION.

SO dopo che leggendo un po'più sulle transazioni che ora vedo che se una riduzione dei prezzi è invitata una transazione annidata rotola di nuovo all'altra transazione. Quando interferisco l'errore io provare a rotolarlo indietro ed a gettare l'errore sopra al proc di chiamata del deposito. La procedura di assistenza tecnica allora prova un rullo indietro ma non ci ne sono. Ciò sembro capire ed ora fa sense.

However (la domanda prima che lo annoi tutto) che stavo esaminando i sensi trattare questo e che non so se usare Xact_state o @@trancount per decidere se rotolare indietro o not.

So in ogni fermo stavo andando mettere un certo codice come. il
BEGIN TRY
del roba del som del delcare del proc
di stor del

start…… COMINCIA TRANSACTION
… fa un certo stuff
COMMETTE TRANS
END TRY
BEGIN CATCH
        -- rotolare soltanto indietro se questo è il tranaction
SE (XACT_STATE () = -1) E (@@TranCount = RIDUZIONE DEI PREZZI TRANS

di 1)
         -- costruire un @errorMsg dello string
di errore = un OBJECT_NAME PRESCELTI (@@PROCID) + “: “+ fuso (XACT_STATE () come varchar (3)) +„ --  @@TranCount =„ + fuso (@@TranCount come (3))
          --gettare il proc

Do che del deposito dell'estremità del
del FERMO dell'ESTREMITÀ del
del on
RAISERROR (@errorMsg, @errorSev, @errorState) di errore… ho bisogno del XACT_STATE o appena che uso il @@Trancount.  Inoltre ho notato nel programma di messa a punto nello SQL 2008 che se metterà una vigilanza sulla variabile del @@TranCount, il minuto ho entrato nel proc che del deposito va incrementato e non quando excuted la dichiarazione… Cominciare la transazione. Lo stessi quando gli ho denominato il rullo indietro… non decrement, solo quando lascia al proc del deposito… alcune idee o sono questo appena il programma di messa a punto o assistente di SQL che sa che hanno una transazione da cominciare comunque??

thanks M
class= del

Risposta : Xact_state o @@ TranCount per trattare le riduzioni dei prezzi di transazione del nido

Altre soluzioni  
 
programming4us programming4us