Этим вечером я освежил свои знания, пытаясь преодолеть 4 года плохой практики программирования из-за компании, в которой я работал. Одна из вещей, на которую я недавно наткнулся, была System.Transactions. Прочитав о них за последние несколько часов, я думаю, что у меня есть адекватное понимание того, как они работают и почему вы хотите их использовать. Однако все примеры, на которые я смотрел, показывают, что встроенный T-SQL вызывается из транзакции.
Я в значительной степени использую хранимые процедуры исключительно при доступе к базе данных, и все существующие хранимые процедуры обернуты в свои собственные SqlTransactions. Вы знаете, используя «Begin Tran», а затем откат или фиксацию. Если сохраненный процесс вызывает другой сохраненный процесс, он также создает транзакцию, и коммит всплывает до тех пор, пока внешний не подтвердит или не откатится. Прекрасно работает.
Итак, теперь мой вопрос: если я хотел начать использовать System.Transactions в моем коде - для простых целей мониторинга последовательных задач базы данных, которые не могут быть вложены в одну хранимую процедуру - как это работает с существующей SqlTransactions у меня уже есть в моих сохраненных процедур?
Будет ли использование System.Transactions в моем коде просто добавить еще один уровень защиты, прежде чем он будет фактически зафиксирован, или потому что я явно фиксирую в своей SqlTransaction - будут ли данные сохраняться независимо от фиксации или отката в транзакции на основе кода