2015-02-01 7 views
0

Я вставляю значения в две таблицы, используя две хранимые процедуры, а данные в обеих таблицах связаны друг с другом, поэтому я хочу, чтобы во второй хранимой процедуре произошла какая-либо ошибка, данные, введенные через 1-ю сохраненную процедуру процедура должна выполняться в рулоне.Обратный запрос Sql Server 2008

Я использую SQL Server 2008, как мой задний конец и ASP.net (C#) в качестве переднего конца

ответ

0

использования нужно использовать TransactionScope ниже

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

когда исключение происходит управление будет идти из-за использования и, следовательно, transaction будет rollback

+0

Thnxx @reza, это действительно помогло мне –

+0

@AkhilRJ Добро пожаловать, вы можете upvote пост, который поможет вам, нажав на UpArrow рядом вопрос, и вы можете пометить ответ, нажав на Tickmark рядом с вопросом, чтобы помочь другим людям найти правильный ответ в случае, если у них был такой же вопрос. – RezaRahmati

0

, если вы используете структуру сущности, вы можете использовать ее.

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

+0

Не могли бы вы объяснить, почему мы используем 'TransactionScopeAsyncFlowOption.Enabled' этот параметр. –

+0

Пожалуйста, прочтите это http://stackoverflow.com/a/17527759/13889 00. –

Смежные вопросы