这个SQL错误意味着什么

时间:2009-04-09 04:13:27

标签: sql-server-2005 sql-server-2008

异常:“分布式事务已完成。请在新事务或NULL事务中登记此会话”

这是在托管SQL 2005和Sql 2008的机器上运行的SProc内部进行的。

C#代码看起来像这样

(using TransactionScope t = new TransactionScope ())
{
   using(SqlConnection c= new SqlConnection(...))
   {
      c.Open();
      DataContext1 ctx = new DataContext1(c);//Linq2SQL
      c.StoreData(2,3);//Call Sproc
   }
}

Sproc看起来像这样

Select * Table where x=2 and y=3
if(@@rowcount =0)
   Insert into table values(2,3)
end if

1 个答案:

答案 0 :(得分:3)

该错误是由于DB前端的约束失败引起的。您的事务正在回滚(意味着数据库没有发生任何事情)。

基本上,这是在交易中发生的错误,如果没有更多信息我们就无法轻易识别。发布您的查询。