Скажем, хранимая процедура на сервере MSSQL использует транзакцию SQL с использованием BEGIN TRANSACTION/COMMIT TRANSACTION
, как это отличается от начала и назначения одного с помощью ADO.NET через SqlConnection.BeginTransaction()
?В чем разница между транзакцией SQL на уровне хранимой процедуры и одной на уровне SqlConnection?
ответ
Для ADO.NET это не имеет значения. Это неявно указано в MSDN, где для объекта SqlTransaction метод Commit называется «fail, если транзакция уже откатна на сервере».
Кроме того, SQL Server Profiler показывает «УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ УСТАНОВКИ ПЕРЕДАЧИ КОМАНДЫ, НАЧАТЬ TRAN», как только вы выполните .BeginTransaction при соединении.
Для ADO (не .NET), однако, это не так. Это использовалось для обеспечения хороших сценариев с эффективными вложенными транзакциями (серверный транс был вложен внутри клиентских). Несмотря на то, что я использовал это много, я не могу точно определить, что такое «клиентская транзакция».
Если вы собираетесь вызывать несколько хранимых proc в строке и хотите иметь возможность отката, вам необходимо управлять транзакцией из вашего кода с помощью SqlConnection.BeginTransaction(). В противном случае это одно и то же.
- 1. В чем разница между dim на уровне участника и статикой на уровне процедуры?
- 2. В чем разница между работой на уровне таблицы и работой на уровне записи?
- 3. В чем разница между транзакцией sql и транзакцией в orientdb?
- 4. Как остановить результаты вложенной хранимой процедуры на верхнем уровне?
- 5. Разница между merise и uml функционально и на методическом уровне
- 6. В чем разница между транзакцией и Try Catch в SQL
- 7. Синхронизация на уровне java-поведения на уровне
- 8. Разница между транзакцией END и транзакцией COMMIT
- 9. Операции на уровне менеджера SQL
- 10. Тайм-аут в зависимости от SQL Azure на базовом/стандартном уровне - отлично работает на веб-уровне
- 11. Есть ли какая-либо разница в поведении оператора регистрации на уровне модуля и на уровне класса?
- 12. Рекурсивный SQL и информация на другом уровне
- 13. PL/SQL Обработка исключений на уровне пакетов
- 14. На уровне базы данных в чем разница между [Django] OneToOneFiled и ForeignKey (Model, unique = True)
- 15. ZF2: В чем разница между загрузкой() и run() на уровне приложения?
- 16. Написание фильтра поиска - фильтр на уровне SQL или уровне PHP?
- 17. Процедура разбора и синхронизации на уровне таблиц для T-SQL
- 18. Как подготовленные операторы работают на уровне SQL?
- 19. Работает ли ptrace на уровне пользователя или на уровне ядра?
- 20. Группировка на высоком уровне
- 21. Планирование на уровне приложений
- 22. Как написать правильное тестирование на Android-уровне на уровне презентатора
- 23. рекурсия в sql-сервере на многоуровневом уровне
- 24. Разница между транзакцией и откатом транзакции вручную?
- 25. Сохранять на уровне темы
- 26. В чем разница между использованием класса DataContext и SqlConnection?
- 27. В чем разница между SqlCeConnection и SqlConnection C#?
- 28. Совместное использование соединения и транзакций на уровне доступа к данным
- 29. сжатие на уровне бит
- 30. Нахождение разницы на уровне группы