Вопрос по sql-server, .net, ado.net, transactions – В чем разница между транзакцией SQL на уровне хранимой процедуры и транзакцией на уровне SqlConnection?

6

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

Ваш Ответ

2   ответа
3

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

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

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

2

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

Похожие вопросы