簡體   English   中英

回滾Sql Server 2008查詢

[英]Roll Back Sql Server 2008 query

我正在使用兩個存儲過程將值插入兩個表中,並且兩個表中的數據都相互鏈接,所以我想如果第二個存儲過程中發生任何錯誤,則應該回滾通過第一個存儲過程輸入的數據。

我使用Sql Server 2008作為后端,並使用ASP.net(c#)作為前端

使用需要使用TransactionScope如下

using(var tran = new TransactionScope())
{
   //calling stored procedures here
   tran.Complete();
}

當發生異常時,控件將從使用中退出,因此transactionrollback

如果您使用的是實體框架,則可以使用它。

using (var  dataContext = new SchoolMSDbContext())
{
  using (var trans = dataContext.Database.BeginTransaction(IsolationLevel.ReadCommitted))
  {
    try
    {
      // your query
      trans.Commit();
    }
    catch (Exception ex)
    {
      trans.Rollback();
      Console.WriteLine(ex.InnerException);
    }
  }
}

或者你可以嘗試這個

 using (var dataContext = new SchoolMSDbContext())
                {
                    using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        try
                        {
                            //your query
                            transaction.Complete();

                        }
                        catch (Exception ex)
                        {
                            transaction.Dispose();
                            Console.WriteLine(ex.InnerException);
                        }
                    }
                }

為此,您將必須參考這些內容。

System.Transactions

有關更多信息,請檢查此鏈接https://msdn.microsoft.com/en-us/data/dn456843.aspx https://msdn.microsoft.com/en-us/library/2k2hy99x(v=vs.110)。 ASPX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM