Вы описываете «автономную транзакцию», которая является распространенным вопросом для людей, мигрирующих из Oracle (который их поддерживает) в MSSQL (который не поддерживает). Эта статья объясняет различные варианты, которые, к сожалению, не особенно привлекательны:
- Сервер с обратной связью
- Соединение с обратной связью из процедуры CLR
- Табличная переменная, в которой хранятся данные, поскольку они не подвержены откатам
- Соединение с обратной связью из расширенной хранимой процедуры (но в любом случае они устарели в пользу процедур CLR)
Если ни один из этих вариантов не подходит для вас, другой альтернативой является перенос некоторого контроля в приложение и из базы данных, но, конечно, это просто переносит проблему в другое место. Тем не менее, стоит подумать.