anchor.diff:      tran.Complete()
   
   (**
  -Although very convenient `TransactoinScope` has some pitfalls and 
  -therefore requires good understanding of what happens behind the scene. 
  -Make sure you read [general usage guidelines](https://msdn.microsoft.com/en-us/library/ee818746.aspx).
  -
  -There are two kind of issues you might run into when using `TransactionScope`
  +Although very convenient, `TransactionScope` has some pitfalls and 
  +therefore requires a good understanding of what happens behind the scenes. 
  +Make sure to read  the [General Usage Guidelines](https://msdn.microsoft.com/en-us/library/ee818746.aspx) to avoid common mistakes.
  +
  +There are two kind of issues you might run into when using `TransactionScope`:
   
   Unexpectedly Distributed Transactions 
   -------------------------------------
  -[Distributed Transactions](https://msdn.microsoft.com/en-us/library/ms254973.aspx) spell all kind of troubles. 
  -Rare necessity it should be avoided in most cases. 
  -Strictly speaking this problem is not specific to TransactionScope 
  -but automatic [Transaction Management Escalation](https://msdn.microsoft.com/en-us/library/ee818742.aspx) 
  -makes it's really easy to fall into the trap.
  -
  -If a local transaction was accidently promoted to distributed it is software design problem. 
  -Have a simple check in a code right before commit to reveal the issue.: 
  +[Distributed Transactions](https://msdn.microsoft.com/en-us/library/ms254973.aspx) spell all kind of trouble. 
  +They are rarely required and should be avoided in most cases. 
  +Strictly speaking this problem is not specific to `TransactionScope`, but it can be exacerbated by 
  +automatic [Transaction Management Escalation](https://msdn.microsoft.com/en-us/library/ee818742.aspx), which thus makes it annoying easy to fall into the trap.
  +
  +If a local transaction was accidently promoted to distributed it should be considered a design problem. It's generally best to have a simple check in your code right before `commit` to reveal the issue: 
   
   *)
   
  
positive.code: 
      tran.Complete()
  
  (**
  
  Unfortunately if you stuck with the .NET Framework before 4.5.1 version the only way 
  to combine `TransactionScope` with `AsyncExecute` is explicit transactions.  
  
  DataTable Updates/Bulk Load
  -------------------------------------
  Statically typed data tables generated either by SqlProgrammabilityProvider or by SqlCommandProvider 
  with ResultType.DataTable have two helper methods `Update` and `BulkCopy` to send changes back into a database. 
  Both methods accept connection + transaction to support explicit transactions.
  
  Example above to insert a new USD/GBP currency rate can be re-written as
  *)
  
  do
  
negative.code: 
  (**
      
  *)
  