2009-04-09 182 views
0

例外:“分布式事务已完成可以登记在新的事务这个会话或NULL事务”这是什么SQL错误意味着

这是一个存储过程里面hapening一台机器上运行的同时具有SQL 2005和SQL 2008主办。

的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 
    } 
} 

存储过程看起来这

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

你能提供更多关于你在做什么的细节吗?两个数据库的存在并不能解释为什么要创建一个分布式事务。 – 2009-04-09 04:17:25

回答

3

这错误是由于在DB前一个约束失败。您的交易正在回滚(意味着数据库没有任何事情发生)。

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

+0

这很有趣,我刚刚发布了与MSDN完全相同的文字。看起来很傻,有两次相同的帖子。 – jerebear 2009-04-09 04:27:29

相关问题