• whereas with SQL Server we have struggled with this issue, having to resort to dirty reads for some of our reporting to avert concurrency problems.

    The main reason for transaction problems in SQL Server comes from Microsoft providing many implementations of transactions which Microsoft in their docs tells developers a resource manager is needed. That means when those transactions are propagated into SQL Server code is needed to convert none atomic transactions to the atomic version in SQL Server but few developers do that instead they post useless bugs at the MSDN forums or connect.

    I have resolved all but a few of these threads when i find them because I separate the transactions into product groups resolve what I can send the user to product owners within Microsoft. Microsoft knows their developers don't know the difference so I think Microsoft needs to provide to atomic conversion code block in either ADO.NET or SQL client point of connection.

    But wait it is already there it is the ubiquitous MSDTC.

    Kind regards,
    Gift Peddie