Tsansactions (и в частности, тяжелые веса, такие как TransactionScope
, даже с LTM) в основном включаются при применении нескольких операций, которые могут охватывать более одного вызова дБ.
Добавление транзакций может быть важным, но это меняет природу запроса; вы могли бы ввести взаимные блокировки как наиболее очевидные, но вы также можете изменить предполагаемый побочный эффект метода, который является ошибочным. Он также может исправить в противном случае непреднамеренный побочный эффект. Он изменяет профиль блокировки и предъявляет другие системные требования (наиболее очевидным является включение DTC).
Так что праздно не добавляйте их.
Точно так же многие экраны просмотра только для чтения не нуждаются в какой-либо специальной блокировке; черт возьми, большая часть списка / поиска / и т. д. не изменится каким-либо важным способом, если вы увидели текущую транзакцию с фантомными / грязными / неповторяющимися / etc данными.
Лично, когда я использовал код, основанный на SP, я не имел тенденцию помещать управление транзакциями в SP - часто бывает проще: и , чтобы поднять его до более высокого уровня. уровень с более сложным управлением ошибками - то есть почти всем, кроме TSQL, который не предназначен для , чтобы быть хорошим в процедурном коде. Очевидно, он хорош в DML на основе множеств.