[英]Roll Back Sql Server 2008 query
我正在使用兩個存儲過程將值插入兩個表中,並且兩個表中的數據都相互鏈接,所以我想如果第二個存儲過程中發生任何錯誤,則應該回滾通過第一個存儲過程輸入的數據。
我使用Sql Server 2008作為后端,並使用ASP.net(c#)作為前端
使用需要使用TransactionScope
如下
using(var tran = new TransactionScope())
{
//calling stored procedures here
tran.Complete();
}
當發生異常時,控件將從使用中退出,因此transaction
將rollback
如果您使用的是實體框架,則可以使用它。
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.