【发布时间】:2010-01-10 08:53:37
【问题描述】:
我在父母 TransactionSope 中有一个孩子 TransactionScope。子 TransactionScope 在单个父 TransactionScope 下被创建、执行和提交多次。
父 TransactionScope 负责将Insert 的单个记录写入数据库,同时等待第二组插入语句一个接一个地执行完毕。
完成第一个事务后,在第一次插入子事务时出现问题。经过昨天以来的大量研究,我现在发现第二个插入运行的进程被第一个插入的进程阻塞了。
我通过在程序正在运行的 sql server 中运行 SP_WHO2 发现了这一点。
同时,插入过程中涉及的两个表之间存在一对多的关系。第一个插入在父表上执行它的操作,而第二个将在子表上执行。
每当我删除两个表之间的关系约束时,事务都会通过,但在约束开启时不会。
我的问题是如何解除被第一次插入阻塞的第二个进程的阻塞?
【问题讨论】:
标签: c# sql-server-2005 transactions transactionscope