2009-04-09 176 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

相關問題