【问题标题】:How do i unblock a process (Insert Stmt) blocked by a parent process (Insert Stmt) with in a TransactionScope如何在 TransactionScope 中取消阻止被父进程 (Insert Stmt) 阻止的进程 (Insert Stmt)
【发布时间】:2010-01-10 08:53:37
【问题描述】:

我在父母 TransactionSope 中有一个孩子 TransactionScope。子 TransactionScope 在单个父 TransactionScope 下被创建、执行和提交多次。

父 TransactionScope 负责将Insert 的单个记录写入数据库,同时等待第二组插入语句一个接一个地执行完毕。

完成第一个事务后,在第一次插入子事务时出现问题。经过昨天以来的大量研究,我现在发现第二个插入运行的进程被第一个插入的进程阻塞了。

我通过在程序正在运行的 sql server 中运行 SP_WHO2 发现了这一点。

同时,插入过程中涉及的两个表之间存在一对多的关系。第一个插入在父表上执行它的操作,而第二个将在子表上执行。

每当我删除两个表之间的关系约束时,事务都会通过,但在约束开启时不会

我的问题是如何解除被第一次插入阻塞的第二个进程的阻塞?

【问题讨论】:

    标签: c# sql-server-2005 transactions transactionscope


    【解决方案1】:

    如果每个 TransactionScope 使用不同的连接,那么这是预期的并且是设计使然。

    现在,我不是 c# 专家,但是...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 2016-03-22
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多