В чем разница между транзакцией SQL на уровне хранимой процедуры и транзакцией на уровне SqlConnection?
=======================================================================================================

Скажем, хранимая процедура на MSSQL Server использует транзакцию SQL, используя`BEGIN TRANSACTION/COMMIT TRANSACTION`Как это отличается от начала и совершения одного с помощью ADO.NET через`SqlConnection.BeginTransaction()`?

 где для объекта SqlTransaction метод Commit считается "неудачным", если транзакция уже откатана на сервере. "

Кроме того, SQL Server Profiler показывает «УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ СДЕЛКИ СДЕЛКИ», НАЧАЛО ТРАНС » как только вы выполните .BeginTransaction для соединения.

Однако для ADO (не .NET) это не так. Это позволяло создавать хорошие сценарии с эффективно вложенными транзакциями (серверные транс были вложены в клиентские). Несмотря на то, что я использовал это много, я не могу точно определить, что такое «клиентская транзакция». был в этом случае.



те иметь возможность отката, тогда вам нужно управлять транзакцией из своего кода с помощью SqlConnection.BeginTransaction (). В противном случае это то же самое.