Я пишу программу, которая использует SqlCommand ADO.NET для выполнения ряда предоставленных пользователем пакетов операторов T-SQL.
Мое приложение открывает транзакцию, в которой выполняются все операторы, чтобы гарантировать, что если при выполнении возникнет ошибка, весь лот будет откатан.
Проблема, с которой я столкнулся, состоит в том, что неправильно помещенный COMMIT (без соответствующего BEGIN TRAN) в пользователе при условии, что SQL совершит мою важную транзакцию и не сможет откатиться.
Есть ли у кого-нибудь идеи, как я могу помешать пользователю SQL связываться с моей транзакцией, но все же разрешить ему НАЧАТЬ / COMMIT / ROLLBACK собственные вложенные транзакции?