我发现了一些执行以下操作的应用程序代码(伪代码):
start-transaction (trans)
{
update(tableA, trans)
update(tableB, trans)
update(tableC) // not in transaction trans - creates own connection and transaction
update(tableD, trans)
}
代码为C#,数据库为SQL Server。外部事务使用ADO,表C更新使用Entity Framework。
实际上,表C应该作为同一事务的一部分进行更新,但是我想知道在SQL Server级别上的影响有多严重-即。这只是性能上的垃圾,还是还有其他潜在的更严重的副作用?