Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.ms-sqlserver    |    Notorious Rube Goldberg contraption    |    19,505 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 19,253 of 19,505    |
|    Anton Shepelev to All    |
|    Re: Using sp_getapplock outside a transa    |
|    27 Nov 17 11:34:28    |
   
   From: anton.txt@g{oogle}mail.com   
      
   Erland Sommarskog to Anton Shepelev:   
      
   >>Thank you for the replies, Erland and rja. I have   
   >>found what I think is an ambiguity in the documen-   
   >>ta- tion:   
   >>   
   >> Locks placed on a resource are associated with   
   >> either the current transaction or the current   
   >> session.   
   >>   
   >>where the notion of "current transaction" is   
   >>rather unintuitive, for it refers not to the scope   
   >>of the immediate enfolding BEGIN TRAN block, but   
   >>to the outermost one.   
   >   
   >There isn't really any ambiguity, because there is   
   >only one transaction. The inner BEGIN TRANSACTION   
   >does not start any new transaction, but only in-   
   >creases @@trancount. In the same manner, the first   
   >COMMIT in your example only decreases @@trancount,   
   >but nothing is actually committed.   
      
   Indeed. An inner BEGIN TRAN only increments the   
   counter, an inner COMMIT TRAN decrements it, but (!)   
   ROLLBACK TRAN does actually undo the the outer   
   transaction and sets the counter to zero. This is   
   all very unintuitive to me, and requires special   
   handling of ROLLBACKs in both T-SQL code and the   
   client application.   
      
   --   
   () ascii ribbon campaign - against html e-mail   
   /\ http://preview.tinyurl.com/qcy6mjc [archived]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca