Up Prev Next
From: David Owen <dso at home dot com>
Subject: Re: Transactions
Date: Aug 26 1999 1:50AM
At 04:13 PM 25/08/99 -0700, Michael Peppler wrote:
>Roger Hall writes:
> > Hi,
> > I was wondering if anyone could explain the following, or point me at
> > an example or document that explains what I'm doing wrong. The following
> > code runs fine. I run it as a normal user and so the select gives me
> > a couple of permission denied errors and then my error saying 'OUCH'.
> > If I un-comment the two transaction lines, I still get the two permission
> > errors, but my 'OUCH' error no longer gets output.
>What I think happens is that when you have a begin tran the
>transaction is automatically rolled back when you hit an error, so the
>raiserror is never called (in this case).
>Although I may be completely wrong, of course!
I think you are! :-) I have written a lot of code that depends on that
_not_ happening. An example is loading a data warehouse. It is more
efficient to try and insert a row, and, if it is already there, to trap the
error and then proceed to update it than to test for its existanc before
inserting or updating. However, I cannot explain _why_ you do not get the
'OUCH', if you were to run this directly through isql, you would get the
behaviour you expect.
I am intigued and will try this out myself.