jettm
03-23-2007, 01:08 PM
I very well could be missing something, but it appears from the behavior that the Insert/Update step is not wrapped in a transaction. Details:
Using SQL Server 2000 database, 2.4.1-M2 as downloaded today.
I have several Insert/Updates in parallel. I'm basically transforming rows into columns. A record comes in, gets several copies made, and each after filtering is pushed into an Insert/Update on the same table. The first Insert/Update step to get one of the copies should insert the record, the remainder of the steps to get a copy of the record should update it. However, I get primary key violations.
It looks like IU step 1 gets a copy, does the select to find it not there. IU step 2 gets a copy, does the select to find it not there. IU step 1 inserts the record since it wasn't there when it looked. IU step 2 now tries to insert the record....
I've attached the transform XML for reference, but it seems to be that the Insert/Update is not wrapping the SELECT and Update/Insert block into a transaction, which results in dirty transactions.
Any ideas on how to resolve?
thx,
Mike
Using SQL Server 2000 database, 2.4.1-M2 as downloaded today.
I have several Insert/Updates in parallel. I'm basically transforming rows into columns. A record comes in, gets several copies made, and each after filtering is pushed into an Insert/Update on the same table. The first Insert/Update step to get one of the copies should insert the record, the remainder of the steps to get a copy of the record should update it. However, I get primary key violations.
It looks like IU step 1 gets a copy, does the select to find it not there. IU step 2 gets a copy, does the select to find it not there. IU step 1 inserts the record since it wasn't there when it looked. IU step 2 now tries to insert the record....
I've attached the transform XML for reference, but it seems to be that the Insert/Update is not wrapping the SELECT and Update/Insert block into a transaction, which results in dirty transactions.
Any ideas on how to resolve?
thx,
Mike